从对象数组中获取特定键值作为数组

时间:2014-04-21 13:42:19

标签: php arrays

这是我的代码:

$a = array(
    array("a" => 1, "b" => 2),
    array("x" => 2, "a" => 2),
    array("d" => 100, "a" => 3, "b" => 2, "c" => 3)
);
$myArray = array();
foreach ($a as $arr) {
    $myArray[] = $arr['a'];
}
print_r($myArray);

所以,我得到了

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

没有for循环,有没有其他方法可以做到这一点?比如使用一个是PHP array functions两个来获得相同的响应。

以上是正确的,但如果还有其他更好的方法可以做到这一点,那将是可观的!因为我的代码中的相同数组$a需要多次迭代。如果我有更好的方法来做到这一点,那么我可以减少另一次迭代(PHP仍然在内置的fns迭代,我不打扰它。)

1 个答案:

答案 0 :(得分:3)

是(因为您使用的是PHP 5.4,array_column()不是选项),

$result = array_map(function($x)
{
   return $x['a'];
}, $a);

但请注意,这仍将在内部使用循环(即最终总是是循环)