我有一个如下所示的数组:
$array = array(
[0] => array( [key] => val1 ),
[1] => array( [key] => val2 ),
[2] => array( [key] => val3 ),
...
)
我想让它看起来像这样:
$array = array(
[0] => val1 ),
[1] => val2 ),
[2] => val3 ),
...
)
显然,我可以循环遍历数组并构建一个新数组,但有没有更有效的方法来完成我所描述的内容?
答案 0 :(得分:3)
由琐碎的标准库知识提供支持:
$new_array = array_map(function($i) {
return $i['key'];
}, $array);
或者如果您使用的是php> = 5.5
$new_array = array_column($array, 'key');
或者如果密钥名称未知,您只想将2d数组放入1d:
$new_array = call_user_func_array('array_merge', array_map('array_values', $array));
参考文献:
答案 1 :(得分:2)
由this answer提供支持:
<?php
$array = array(
0 => array( 'key' => 'val1' ),
1 => array( 'key' => 'val2' ),
2 => array( 'key' => 'val3' ),
);
$new_array = array();
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach($it as $v) {
$new_array[] = $v;
}
print_r($new_array);