将此数组更改为1D数组的最简单方法是什么,我可以使用for循环或foreach来实现,但我很想知道是否有更简单的方法。谢谢
Array
(
[0] => Array
(
[id] => 1
)
[1] => Array
(
[id] => 2
)
[2] => Array
(
[id] => 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);