比这更简单的方法来展平或合并 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 数组?的主要内容,如果未能解决你的问题,请参考以下文章

来一波SpringBoot开源项目,没有比这更简单了

SpringBoot 一个依赖搞定 session 共享,没有比这更简单的方案了!

展平和合并数组,然后将它们拆分回来

如何在 PHP 中将多维数组“展平”为简单数组? [复制]

如何在 PHP 中将多维数组“展平”为简单数组? [复制]

Numpy 数组:连接展平和添加维度