Как получить значение ключей массива в один массив без ключей и без зацикливания?
У меня есть этот массив:
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
возвращает все значения в одном столбце с указанным ключом.
2018-01-22 09:42
Альтернативой является использование 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 является массивом имен и фамилий. Анонимная функция, которая служит в качестве обратного вызова, возвращает значение элемента, содержащего имя.