Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不使用foreach循环获取数组值_Php_Arrays_Foreach - Fatal编程技术网

Php 不使用foreach循环获取数组值

Php 不使用foreach循环获取数组值,php,arrays,foreach,Php,Arrays,Foreach,在本例中,有没有办法不使用foreach循环就获得一个数组中的所有值 <?php $foo = array(["type"=>"a"], ["type"=>"b"], ["type"=>"c"]); 但是,我正在寻找不涉及使用foreach循环的选项 如果您使用的是PHP5.5+,您可以使用,如下所示: $result = array_column($foo, 'type'); 如果需要具有数字索引的数组,请使用: $result = array_values(ar

在本例中,有没有办法不使用foreach循环就获得一个数组中的所有值

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

但是,我正在寻找不涉及使用foreach循环的选项

如果您使用的是PHP5.5+,您可以使用,如下所示:

$result = array_column($foo, 'type');
如果需要具有数字索引的数组,请使用:

$result = array_values(array_column($foo, 'type'));
如果您使用的是以前的PHP版本,目前无法升级,那么可以使用同一作者编写的函数

或者,您也可以使用。这与循环基本相同,只是没有显式显示循环

$result = array_map(function($arr) {
   return $arr['type'];
}, $foo);
用于PHP 5.5的任何一种方法:

$foo = array(["type"=>"a"], ["type"=>"b"], ["type"=>"c"]);
$result = array_column($foo, 'type');
或用于以前的版本:

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

注意:循环仍将执行,但它将隐藏在上述函数中。

是否要用于循环?@Magnetronie更糟:)遗憾的是,我没有使用我应该使用的5.5。
array\u values()
在这里不是必需的,因为
array\u column()
将返回所需的值array@AlmaDo:我知道。我只是想OP可能想得到一个带有数字索引的数组。链接断了。2.更新PHP比使用外部库要好得多,因为一个函数ray_映射有点类似于循环imho。我通过组合
each()
array\u values()
来寻找一些东西,我想这是不可能的。无论如何谢谢你
$result = array_map(function($x)
{
   return $x['type'];
}, $foo);