PHP不使用循环从多维数组中提取值
我只是想知道是否有可能在PHP中从数组中提取值,而不必循环。这是我数组的一部分,所以你知道我的意思PHP不使用循环从多维数组中提取值,php,arrays,loops,foreach,extract,Php,Arrays,Loops,Foreach,Extract,我只是想知道是否有可能在PHP中从数组中提取值,而不必循环。这是我数组的一部分,所以你知道我的意思 Array ( [0] => Array ( [0] => 76 [1] => Adventures of Huckleberry Finn ) [1] => Array ( [0] => 65 [1] => Adventures of Huckleberry Finn
Array
(
[0] => Array
(
[0] => 76
[1] => Adventures of Huckleberry Finn
)
[1] => Array
(
[0] => 65
[1] => Adventures of Huckleberry Finn
)
[2] => Array
(
[0] => 59
[1] => Bookcases
)
)
我在寻找每个数组中的整数[0]——是否有一个函数可以比foreach循环更快地完成这项工作(我通常这样做)
谢谢 你最终的意思是要走。。。但这也是某种循环?那么:答案是否定的 我不认为有任何更快的方法(除了用C:-p编写自己的扩展名)试试:
array_walk($array, function(&$v) { $v = $v[0]; });
这将把数组转换成您想要的格式。您可能正在寻找数组\u walk()
当然,如果您的数组位于变量$myArray中,那么这将是一个清晰的循环,您的同事会感谢您的。它可能比任何其他解决方案都快,而且清晰的代码比模糊的循环规避更可取 举个例子:您需要多少秒才能看到:
list($b) = call_user_func_array('array_map',array_merge(array(null),$a));
是吗
这就是诀窍。不要使用它。确定您正在查找该函数
$newArray = array_column($originalArray,'0');
正如PHP手册中所说,使用此函数,您可以从数组数组中提取所需的唯一信息。它通常与关联数组一起使用,但您可以使用数字作为参数,它也可以工作。是否提取所有数据?我需要一个只有数字的数组,所以数组(76,65,59)我现在只看数组。我想要的输出是array(76,65,59)-array_walk会这样做吗?请看下面的答案:;)最后与之相同的是:
foreach($array as&$v)$v=$v[0]当然,他问了一个不用foreach的方法array\u walk
的优点是$v
不会污染名称空间。我刚刚测试了这个功能,它可以完美地将$newArray
设置为您需要的值。
$newArray = array_column($originalArray,'0');