Php 不使用foreach循环获取数组值
在本例中,有没有办法不使用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
<?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);