php处理post的数组
程序员文章站
2023-12-27 09:58:09
...
第一组checkbox提交的数组如下
array('sort'=>array(0,2,3,1))
第二组checkbox提交的数组如下
array('id'=>array(1,2,3,4))
如何处理成下面我想要的数组结果
array(
array('sort'=>0,'id'=>1),
array('sort'=>2,'id'=>2),
array('sort'=>3,'id'=>3),
array('sort'=>1,'id'=>4),
)
array('sort'=>array(0,2,3,1))
第二组checkbox提交的数组如下
array('id'=>array(1,2,3,4))
如何处理成下面我想要的数组结果
array(
array('sort'=>0,'id'=>1),
array('sort'=>2,'id'=>2),
array('sort'=>3,'id'=>3),
array('sort'=>1,'id'=>4),
)
回复内容:
第一组checkbox提交的数组如下
array('sort'=>array(0,2,3,1))
第二组checkbox提交的数组如下
array('id'=>array(1,2,3,4))
如何处理成下面我想要的数组结果
array(
array('sort'=>0,'id'=>1),
array('sort'=>2,'id'=>2),
array('sort'=>3,'id'=>3),
array('sort'=>1,'id'=>4),
)
$res = array_map(function($v1,$v2){
return ['sort'=>$v1,'id'=>$v2];
},$a['sort'],$b['id']);
/* [
[
"sort" => 0,
"id" => 1
],
[
"sort" => 2,
"id" => 2
],
[
"sort" => 3,
"id" => 3
],
[
"sort" => 1,
"id" => 4
]
]
*/
上面回答的很好,用array_map的确是最好的方法了,不过语法在低版本上的不兼容,我写了一个完整的,可直接测试
array(0,2,3,1));
$b = array('id'=>array(1,2,3,4));
$res = array_map(function($v1,$v2){
return array('sort'=>$v1,'id'=>$v2);
},$a['sort'],$b['id']);
print_r($res);
结果
Array
(
[0] => Array
(
[sort] => 0
[id] => 1
)
[1] => Array
(
[sort] => 2
[id] => 2
)
[2] => Array
(
[sort] => 3
[id] => 3
)
[3] => Array
(
[sort] => 1
[id] => 4
)
)
array(0,2,3,1));
$arr2 = array('id' => array(1,2,3,4));
$arr = array_merge($arr1, $arr2);
$new = array();
foreach($arr as $k => $v) {
foreach($v as $k1 => $v1) {
$new[$k1][$k] = $v1;
}
}
print_r($new);