Php 每N个键使用新的键名将一维键值数组转换为二维kay值数组
我有一个如下所示的数组: 我需要将其转化为: 关于Php 每N个键使用新的键名将一维键值数组转换为二维kay值数组,php,arrays,Php,Arrays,我有一个如下所示的数组: 我需要将其转化为: 关于$startArray需要了解的是,它是动态的,基于表单上提交的人数。但每个人始终只有这三个字段(custom\u 12,custom\u 13,custom\u 14又称fName,lName,电子邮件)。因此,如果有5个成员,则第5个成员fName将是start数组中的键custom_12-5 我一直在stackoverflow上寻找一个类似这样的问题,但我找不到。创建$endArray所采取的步骤和可能的数组函数或任何其他内容是什么?实
$startArray
需要了解的是,它是动态的,基于表单上提交的人数。但每个人始终只有这三个字段(custom\u 12
,custom\u 13
,custom\u 14
又称fName
,lName
,电子邮件
)。因此,如果有5个成员,则第5个成员fName
将是start数组中的键custom_12-5
我一直在stackoverflow上寻找一个类似这样的问题,但我找不到。创建
$endArray
所采取的步骤和可能的数组函数或任何其他内容是什么?实际上有一个内置函数:
例如,array\u chunk($startArray,3)
将为您的新数组提供基础,然后您只需遍历它并重命名键
或者,自己迭代数组,根据当前迭代的索引将值添加到新数组中。多亏了Charlie的建议,我想出了这个方法
$startArray = array(
'custom_12' => 'john',
'custom_13' => 'johny',
'custom_14' => 'john@johny.com',
'custom_12-2' => 'bob',
'custom_13-2' => 'bobby',
'custom_14-2' => 'bob@bobby.com',
'custom_12-3' => 'don',
'custom_13-3' => 'donny',
'custom_14-3' => 'don@donny.com'
);
$middleArray = array_chunk($startArray, 3);
$endArray = array_map(function($val) {
return array(
'fName' => $val[0],
'lName' => $val[1],
'email' => $val[2]
);
}, $middleArray);
echo "<pre>";
print_r($endArray);
echo "</pre>";
$startArray=array(
“custom_12”=>“john”,
“custom_13”=>“johny”,
'自定义_14'=>'john@johny.com',
“自定义_12-2”=>“bob”,
“自定义_13-2”=>“bobby”,
'自定义_14-2'=>'bob@bobby.com',
'自定义_12-3'=>'不',
“custom_13-3”=>“donny”,
'自定义_14-3'=>'don@donny.com'
);
$middleArray=数组块($startArray,3);
$endArray=array\u映射(函数($val){
返回数组(
“fName”=>$val[0],
“lName”=>$val[1],
'email'=>$val[2]
);
}美元阵列);
回声“;
打印(endArray);
回声“;
输出正是我想要的:
谢谢,我正在寻找这样的函数,但找不到。我使用
array\u chunk
创建了一个中间数组,然后使用array\u map
对其进行转换。我会把我的结果公布出来。