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


Rearrange array values to "root level"

给定以下数组

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'];
}

使用array_walk 怎么样

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

这个怎么样?

$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']);