将数组值重新排列为“根级别”

时间:2012-02-22 09:54:39

标签: php arrays

给出以下数组

array(
  0 => array(
    'id' => '54'),
  1 => array(
    'id' => '11'),
  2 => array(
    'id' => '2')
);

是否有(最好是内置的)功能可以将其重新排列为

array(
  0 => '54',
  1 => '11',
  2 => '2'
);
PHP中的

我目前的方法是迭代数组并将其保存到另一个数组,这似乎非常冗余,缓慢且效率低下。

$newArray = array();
foreach ($oldArray as $innerArray {
    $newArray[] = $innerArray['id'];
}

2 个答案:

答案 0 :(得分:2)

如何使用array_walk

function array_flatten( &$item ){
    $item = $item['id'];
}

array_walk( $array, 'array_flatten' );

答案 1 :(得分:0)

这个怎么样?

$arr = array(
  0 => array(
    'id' => '54'),
  1 => array(
    'id' => '11'),
  2 => array(
    'id' => '2')
);
$newArr = call_user_func_array('array_merge_recursive',$arr);
print_r($newArr['id']);