我有这个数组:
Array
(
[0] => Array
(
[fName] => Alice
[lName] => Gibson
)
[1] => Array
(
[fName] => Jack
[lName] => Smith
)
[2] => Array
(
[fName] => Bruce
[lName] => Lee
)
)
如何获取包含所有fName值的数组:
["Alice","Jack","Bruce"]
我尝试过的工作是:
foreach($myArray as $info){
$newArray[] = $info['fName'];
}
问题:
是否可以使用单个函数而不是循环?
答案 0 :(得分:12)
答案 1 :(得分:3)
答案 2 :(得分:1)
另一种方法是使用array_map()将回调应用于数组中的每个元素,如下所示:
$arr = [["fName" => "Alice", "lName" => "Gibson"],
["fName" => "Jack", "lName" => "Smith"],
["fName" => "Bruce", "lName" => "Lee"]];
$arrFnames = array_map(function($e) {
return $e["fName"];
},$arr);
var_dump($arrFnames);
请参阅live code。
$ arr的每个元素都是名字和姓氏的数组。用作回调的匿名函数返回包含名字的元素的值。