比这更简单的方法来展平或合并 php 数组?
Posted
技术标签:
【中文标题】比这更简单的方法来展平或合并 php 数组?【英文标题】:easier way to flatten or merge php array than this? 【发布时间】:2012-02-27 17:52:39 【问题描述】:我有一个数组数组。
例如:
$array[] = array("1", "2", "3");
$array[] = array("5", "9", "ok");
$array[] = array("test", "ok", 8");
将其展平/合并为一个数组的最简单方法是什么?
结果应该是:
$array = array("1", "2", "3", "5", "9", "ok", "test", "ok", "8");
有没有比执行以下操作更容易/更简单的方法来获得此结果?
$result = array();
foreach ($array as $subarray)
foreach ($subarray as $value)
array_push($result, $value);
【问题讨论】:
看这里in3.php.net/manual/en/function.array-merge.php 【参考方案1】:从 PHP 5.6 开始,您可以使用 ...
运算符来提供参数:
array_merge(...$array)
旧答案
按照建议,您可以为此使用array_merge
。如果您不知道 $array
中有多少个值,您可以使用以下内容:
call_user_func_array('array_merge', $array);
【讨论】:
你也可以写array_merge(...$array)
来代替上面的代码。 3个点需要完全像这样。它被称为variadic functions operator。
@gogowitsch,下次继续并通过添加更多详细信息来编辑答案:)
array_merge($array1,...$array2);帮助我,谢谢。【参考方案2】:
array_merge 符合要求。
$result = array_merge($array[1], $array[2], $array[3], ..., $array[N]);
或者如果你坚持迭代:
$result = array();
foreach ($array as $nested)
$result = array_merge($result, $nested);
【讨论】:
+1 Juicys 可能会更短,但这也没有任何问题,因此无需投票。 @Yoshi,确定这是正确的,顺便说一句,这是第一个答案。我的很可能是这个的补充;) @JuicyScripter 希望你不认为我的意思是让你成为反对者。只是想说明我投票的理由。因为有时看到这样的答案无缘无故地被否决,会让人有些沮丧。以上是关于比这更简单的方法来展平或合并 php 数组?的主要内容,如果未能解决你的问题,请参考以下文章