将此数组更改为1D数组的最简单方法是什么?

时间:2010-07-19 06:41:15

标签: php arrays

将此数组更改为1D数组的最简单方法是什么,我可以使用for循环或foreach来实现,但我很想知道是否有更简单的方法。谢谢

Array
(
    [0] => Array
        (
            [id] => 1
        )

    [1] => Array
        (
            [id] => 2
        )

    [2] => Array
        (
            [id] => 3
        )
)

3 个答案:

答案 0 :(得分:2)

$output_ar = array_map('array_shift', $input_ar);

array_shift()函数从数组中获取第一个键/值对并返回该值,因此将其应用于顶级数组中的每个数组,并将结果组合,将导致1-d的id列表。

如果你的数组实际上有更多信息而不仅仅是其中的id字段,那么你可能想要定义一个专门提取你想要的字段并返回它们的函数,然后使用 功能array_map

答案 1 :(得分:2)

数组遍历会更改原始数组,因此如果您需要单独的数组,请先复制它,或选择其他方法。

function reducer($e, $i, $p){
    $e = $e[$p];
}

array_walk($array, 'reducer', "id");

这个函数是可重用的,因为你可以将“id”改为任何其他键或数值(我相信),它会在该数组上做同样的事情。

答案 2 :(得分:0)

这将检索所有值并将它们放入新数组中。

// Initializing the Array
$arr0 ['id'] = 1;
$arr1 ['id'] = 2;
$arr2 ['id'] = 3;

$arr[0] = $arr0;
$arr[1] = $arr1;
$arr[2] = $arr2;


// Processing
$resultarray = array();
for ($i = 0; $i < count($arr); $i++){
  $resultarray = array_merge(array_values($arr[$i]),$resultarray);
}

// Test Output
print_r ($resultarray);