如何在没有键和没有循环的情况下将数组键值转换为一个数组?

时间:2018-01-22 09:39:54

标签: php multidimensional-array array-column

我有这个数组:

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'];      
}

问题:

是否可以使用单个函数而不是循环?

3 个答案:

答案 0 :(得分:12)

您可以使用array_column

array_column($array, 'fName');

array_column返回具有指定键的单个列中的所有值。

答案 1 :(得分:3)

使用array_column

$fname = array_column($arr, "fName");

https://3v4l.org/OIGNM

答案 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的每个元素都是名字和姓氏的数组。用作回调的匿名函数返回包含名字的元素的值。