我已经尝试了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
)
你可以使用array_map
$flat = array_map(function($el) { return $el['id']; }, $arr);
这不是针对 php 5.3 的。如果您使用的是 5.2,则必须定义一个函数或使用create_function
而不是像我在这里那样传入匿名。
如果您使用的是 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)
}
*/