是否有常用的方法(某些现有的函数)可以实现减少
[[0 => 'zero'], [1 => 'one']]
to
[0 => 'zero', 1 => 'one']
很容易创建一个执行任务的循环,但这似乎效率低下,我肯定更喜欢使用一行代码来完成。
编辑:哦,0和1相互跟随只是随机的。数组也可以是[[2 => 'two'], [3 => 'three']]
是否有常用的方法(某些现有的函数)可以实现减少
[[0 => 'zero'], [1 => 'one']]
to
[0 => 'zero', 1 => 'one']
很容易创建一个执行任务的循环,但这似乎效率低下,我肯定更喜欢使用一行代码来完成。
编辑:哦,0和1相互跟随只是随机的。数组也可以是[[2 => 'two'], [3 => 'three']]
您可以使用array_merge
函数与...
扩展运算符
$a = [[0 => 'zero'], [1 => 'one']];
print_r(array_merge(...$a));
解决方案二:保留键值
$a = [[1 => 'one'], [0 => 'zero']];
$r = [];
array_walk($a, function($v, $k) use (&$r){ $r += $v;});
print_r($r);
...
的情况下使用 call_user_func_array
。 - u_mulder[1 => 'one']
是数组中的第一项,则在输出中它将变为0 => 'one'
:https://3v4l.org/6UopE - naththedeveloperarray_walk
但希望有更短的方法,因为这只是一个低标准的一行代码。无论如何,抱怨也不是重点。如果这是最短的方法,那我就接受了!谢谢 - IceFirearray_reduce
非常适合这个任务。$r = array_reduce($a, function ($acc, $v) { return $acc + $v; }, []);
这在功能上与 @Rakesh Jakhar 的解决方案完全相同。我认为它在语义上更忠实于问题,并避免了初始化 $r
和 use
子句。
在 PHP 7.4 中,可以使用箭头函数编写得更好一些:
$r = array_reduce($a, fn($acc, $v) => $acc + $v, []);