Как получить значение ключей массива в один массив без ключей и без зацикливания?

У меня есть этот массив:

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 ответа

Решение

Вы можете использовать array_column

array_column($array, 'fName');

array_column возвращает все значения в одном столбце с указанным ключом.

Используйте array_column.

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

https://3v4l.org/OIGNM

Альтернативой является использование 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);

Смотрите живой код.

Каждый элемент $arr является массивом имен и фамилий. Анонимная функция, которая служит в качестве обратного вызова, возвращает значение элемента, содержащего имя.

Другие вопросы по тегам