php - 奇怪的阵列拼图

时间:2014-04-30 01:49:08

标签: php arrays

我有一个如下所示的数组:

$array = array(
[0] => array( [key] => val1 ),
[1] => array( [key] => val2 ),
[2] => array( [key] => val3 ),
...
)

我想让它看起来像这样:

$array = array(
[0] => val1 ),
[1] => val2 ),
[2] => val3 ),
...
)

显然,我可以循环遍历数组并构建一个新数组,但有没有更有效的方法来完成我所描述的内容?

2 个答案:

答案 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);

Demo