关于合并二维数组的问题
程序员文章站
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
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);