首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RecursiveIterator展平我的多数组不起作用吗?

使用RecursiveIterator展平我的多数组不起作用吗?
EN

Stack Overflow用户
提问于 2012-07-28 03:24:58
回答 1查看 104关注 0票数 1

即使输入数组不为null,也会返回null:

代码语言:javascript
复制
function flattenArray($multi_array)
{ 
  $flat_array = array();
  foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($multi_array)) as $k => $v) 
  { 
    $flat_array[$k] = $v;
  }

  return $flat_array;
}

你知道为什么吗?

EN

回答 1

Stack Overflow用户

发布于 2012-07-29 12:03:09

这对我在PHP 5.4上是有效的:

代码语言:javascript
复制
function flattenArray($multi_array)
{
  return iterator_to_array(new RecursiveIteratorIterator(
      new RecursiveArrayIterator($multi_array)), false
  );
}

var_dump(flattenArray([1, 2, 3, [4, 5, [6, 7], 8], 9]));

部分输出:

代码语言:javascript
复制
array(9) {
  [0] =>
  int(1)
  [1] =>
  int(2)
  [2] =>
  int(3)
  [3] =>
  int(4)

据我所知,您的代码片段唯一的问题是键被覆盖了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11706396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档