欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于合并二维数组的问题

程序员文章站 2022-05-15 19:38:14
...
有一个数组:
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);