получение значений массива без цикла foreach

Есть ли способ получить все значения в одном массиве без использования циклов foreach в этом примере?

<?php $foo = array(["type"=>"a"], ["type"=>"b"], ["type"=>"c"]); 

Мне нужен array("a", "b", "c")

Я мог бы сделать это, используя что-то вроде этого

 $stack = []; foreach($foo as $value){ $stack[] = $value["type"]; } var_dump($stack); 

Но я ищу варианты, которые не связаны с использованием циклов foreach.

Если вы используете PHP 5.5+, вы можете использовать array_column() , например:

 $result = array_column($foo, 'type'); 

Если вам нужен массив с числовыми индексами, используйте:

 $result = array_values(array_column($foo, 'type')); 

Если вы используете предыдущую версию PHP и не можете выполнить обновление на данный момент, вы можете использовать функцию Userland функции array_column() написанную тем же автором.

Кроме того, вы также можете использовать array_map() . Это в основном то же самое, что и цикл, за исключением того, что цикл не показан явно.

 $result = array_map(function($arr) { return $arr['type']; }, $foo); 

Либо используйте array_column() для PHP 5.5:

 $foo = array(["type"=>"a"], ["type"=>"b"], ["type"=>"c"]); $result = array_column($foo, 'type'); 

Или используйте array_map() для предыдущих версий:

 $result = array_map(function($x) { return $x['type']; }, $foo); 

Примечание. Петля все равно будет выполняться, но она будет скрыта внутри вышеупомянутых функций.