首页  >  文章  >  后端开发  >  php处理post的数组

php处理post的数组

WBOY
WBOY原创
2016-06-06 20:28:371819浏览

第一组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),
)

回复内容:

第一组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),
)

<code class="php">$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
       ]
   ]
*/</code>

上面回答的很好,用array_map的确是最好的方法了,不过语法在低版本上的不兼容,我写了一个完整的,可直接测试

<code><?php $a = array('sort'=>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);   </code>

结果

<code>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
        )

)</code>

<code><?php header('Content-Type: text/plain; charset=utf-8');
$arr1 = array('sort' => 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);</code>
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn