是否存在类似combine_subarrays
下方的原生函数?
$foo = array(
array(1,2,3),
array(4,5,6),
array(7,8,9)
);
$n = 1; // desired element's position in each subarray
$bar = combine_subarrays($foo, $n);
// Result: $bar is array of all elements in 1st positions - [2,5,8]
现在,我预先通过$ foo将$ nth元素推送到一个新的数组,然后返回。如果有一种本地方式,那就更好了。
答案 0 :(得分:1)
全局引用$ n的快速解决方案是:
$n = 1;
$bar = array_map(function($item) {
global $n;
return $item[$n];
},
$foo);
结果是:
Array ( [0] => 2 [1] => 5 [2] => 8 )
答案 1 :(得分:1)
没有完全的功能,但有几种方法可以使用数组函数而不是编写循环。例如array_reduce
*:
$bar = array_reduce($foo, function(&$result, $item) use ($n) {
$result[] = $item[$n]
});
** array_map
可能是更好的选择,它也保留了原始密钥。见answer by @zeldi *