首页 >后端开发 >php教程 >关于合并二维数组的问题

关于合并二维数组的问题

WBOY
WBOY原创
2016-06-23 13:48:39772浏览

有一个数组:
Array
(
    [0] => Array
        (
            [a] => Array
                (
                    [id] => 4
                )

        )

    [1] => Array
        (
            [a] => Array
                (
                    [id] => 5
                )

        )

    [2] => Array
        (
            [b] => Array
                (
                    [id] => 4
                )

        )

    [3] => Array
        (
            [b] => Array
                (
                    [id] => 7
                )

        )

)

请问如何合并成
Array(
[0]=>4
[1]=>5
[2]=>4
[3]=>7
)

value都是二维数组id


回复讨论(解决方案)

$arr = Array(    '0' => Array        (            'a' => Array                (                    'id' => 4                )        ),    '1' => Array        (            'a' => Array                (                    'id' => 5                )        ),    '2' => Array        (            'b' => Array                (                    'id' => 4                )        ),    '3' => Array        (            'b' => Array                (                    'id' => 7                )        ));$new_arr = array();foreach($arr as $vl){    foreach($vl as $v) $new_arr[] = $v['id'];}print_r($new_arr);

$a = array (  0 =>   array (    'a' =>     array (      'id' => '4',    ),  ),  1 =>   array (    'a' =>     array (      'id' => '5',    ),  ),  2 =>   array (    'b' =>     array (      'id' => '4',    ),  ),  3 =>   array (    'b' =>     array (      'id' => '7',    ),  ),);foreach($a as $t) $b[] = current(current($t));print_r($b);
Array(    [0] => 4    [1] => 5    [2] => 4    [3] => 7)

$a = array (  0 =>   array (    'a' =>     array (      'id' => '4',    ),  ),  1 =>   array (    'a' =>     array (      'id' => '5',    ),  ),  2 =>   array (    'b' =>     array (      'id' => '4',    ),  ),  3 =>   array (    'b' =>     array (      'id' => '7',    ),  ),);$num=sizeof($a);array_walk_recursive($a,'my',$num);function my($v,$k,$num){    static $arr=array();    $arr[]=$v;    if(sizeof($arr)==$num){        print_r($arr);    }}


Array(    [0] => 4    [1] => 5    [2] => 4    [3] => 7)

用闭包就这么写

$a = array (  0 =>   array (    'a' =>     array (      'id' => '4',    ),  ),  1 =>   array (    'a' =>     array (      'id' => '5',    ),  ),  2 =>   array (    'b' =>     array (      'id' => '4',    ),  ),  3 =>   array (    'b' =>     array (      'id' => '7',    ),  ),);array_walk_recursive($a, function($v) use (&$b) { $b[] = $v; });print_r($b);

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn