如何展平多维数组?

新手上路,请多包涵

在 PHP 中,是否可以在不使用递归或引用的情况下展平(双/多)维数组?

我只对值感兴趣,因此可以忽略键,我在考虑 array_map()array_values() 的行。

原文由 Alix Axel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 477
2 个回答

您可以使用 标准 PHP 库 (SPL) 来“隐藏”递归。

 $a = array(1,2,array(3,4, array(5,6,7), 8), 9);
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($a));
foreach($it as $v) {
  echo $v, " ";
}

印刷

1 2 3 4 5 6 7 8 9

原文由 VolkerK 发布,翻译遵循 CC BY-SA 2.5 许可协议

从 PHP v7.4 开始,您可以使用扩展运算符并合并数组。简单有效。

 $flatArr = array_merge(...$originalArray);

原文由 Robert Yeomans 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题