我只是想知道是否可以在PHP中从数组中提取值,而无需循环。这是我的阵列的一部分,所以你知道我的意思;
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循环更快地执行此操作(我通常这样做的方式)?
感谢。
答案 0 :(得分:2)
当然,您正在寻找array_column功能。
$newArray = array_column($originalArray,'0');
如PHP手册中所述,使用此功能,您可以从阵列数组中提取所需的唯一信息。它通常与关联数组一起使用,但您可以使用数字作为参数,它也可以使用。
答案 1 :(得分:1)
您可能正在寻找array_walk()
$newArray = array();
$myCallback = function($key) use(&$newArray){
$newArray[] = $key[0];
};
array_walk($myArray, $myCallback);
如果您在变量$ myArray
中使用了上面的数组,那当然是这样答案 2 :(得分:0)
你最终意味着array_walk ......但这也是某种循环?然后:答案是否定的。
我认为没有更快的方法(除了在C :-P中编写自己的扩展名)
答案 3 :(得分:0)
尝试:
array_walk($array, function(&$v) { $v = $v[0]; });
这应该将数组转换为您想要的格式。
答案 4 :(得分:0)
明确循环,你的编码员会感谢你。它可能比任何其他解决方案快得多,并且清晰的代码优于不明显的循环避免。
就像一个例子:你需要多少秒才能看到:
list($b) = call_user_func_array('array_map',array_merge(array(null),$a));
...呢?
诀窍。不要使用它。