代码之家  ›  专栏  ›  技术社区  ›  Jason Axelrod

在忽略嵌套数组的同时,正在内建数组…

  •  1
  • Jason Axelrod  · 技术社区  · 13 年前

    我环顾四周,看到很多人问如何用嵌套数组来实现数组的内爆。但是,这些人通常也希望包括嵌套数组。我不想包括嵌套数组…我想抛出嵌套数组…

    这是我的阵列:

    [tag] => Array
    (
        [0] => one
        [1] => two
        [0_attr] => Array
            (
                [category] => three
                [lock] => four
            )
    
        [2] => five
    )
    

    如果我用逗号分隔的方式使这个数组内爆,我希望结果是:

    one, two, five
    

    注意如何不包括3和4。因为它们是嵌套数组,所以我不想要它。我只想要即时值。我该怎么做?

    1 回复  |  直到 13 年前
        1
  •  1
  •   ajreal    12 年前

    您需要迭代$tag中的所有值并过滤掉那些is数组
    例如

    $tags = array();
    foreach ($tag as $index=>$value)
    {
      if (!is_array($value))
      {
         $tags[$index] = $value;
      }
    }
    implode(',', $tags);
    

    我发现上面有点乏味,
    这是改进版

    $arr = array(0 => "one", 1 => "two", 2 => array(1,2,3), 3=>4, 4=>new stdClass);
    echo implode(",", array_filter($arr, "is_scalar"));
    

    输出:

    one,two,4