我已经尝试过array_reduce和array_merge方法,但它们似乎没有达到我的预期。有没有一种方法可以在没有foreach的情况下做到这一点?
我需要转换一个数组,如:
Array
(
[0] => Array
(
[id] => 2
)
[1] => Array
(
[id] => 3
)
[2] => Array
(
[id] => 4
)
)
分为:
Array
(
[0] => 2
[1] => 3
[2] => 4
)
答案 0 :(得分:1)
您可以使用array_map
$flat = array_map(function($el) { return $el['id']; }, $arr);
这不适用于php 5.3。如果您使用5.2,则必须定义一个函数或使用create_function
而不是像我在这里那样传递匿名。
答案 1 :(得分:0)
如果您使用的是PHP 5> = 5.5.0或PHP 7,我认为更好的解决方案是使用array_column
,因为它是为了这个目的而制作的:
$multidimensionalArray = [
[
'id' => 2,
'somethingElse' => 'foo'
],
[
'id' => 3,
'somethingElse' => 'bar'
],
[
'id' => 4,
'somethingElse' => 'baz'
],
[
'id' => 5,
'somethingElse' => 'bam'
],
];
$justTheIds = array_column($multidimensionalArray, 'id');
var_dump($justTheIds);
/*
array(4) {
[0]=>
int(2)
[1]=>
int(3)
[2]=>
int(4)
[3]=>
int(5)
}
*/