2010-11-17 96 views
1

我环顾四周,我看到很多人问如何使用嵌套数组爆炸阵列。但是,这些人通常也希望包含嵌套数组。我不想,包括嵌套阵列...我想扔出去的嵌套数组...Imploding阵列...而IGNORING嵌套数组?

这是我的数组:

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

    [2] => five 
) 

如果我爆这个数组,以逗号分隔的,我想结果是:

one, two, five 

请注意,三个和四个不包括在内。由于它们是嵌套数组,我不需要它。我只想要立即值。我该如何完成这项工作?

+2

您可能需要为该语言添加标签。 – TeaDrivenDev 2010-11-17 10:48:54

+0

你只是在寻找算法,还是你想要代码?如果你想要代码,你需要让我们知道这种语言。 – 2010-11-17 10:58:35

回答

1

你会需要遍历在$标记的所有值,并筛选出那些是阵列

$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