这是我的代码:
$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迭代,我不打扰它。)
答案 0 :(得分:3)
是(因为您使用的是PHP 5.4,array_column()
不是选项),
$result = array_map(function($x)
{
return $x['a'];
}, $a);
但请注意,这仍将在内部使用循环(即最终总是是循环)