如何将多维数组内含()到字符串?

时间:2014-08-06 22:58:41

标签: php arrays string multidimensional-array

我试图将这个多维数组内爆成一个字符串:

$smile = Array ( 
    [a] => Array ( [0] => "smile") 
    [b] => Array ( [0] => "cat"   [1] => "dog") 
    [c] => Array ( [0] => "ora"   [1] => "rita") 
    [d] => Array ( [0] => "miley" [1] => "cyrus") 
)

我希望它在这样的列表中:

smile, cat, dog, ora, rita, miley, cyrus

我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

如果数组没有嵌套的其他级别的数组,我首先会使用单个for循环内爆所有嵌套数组,然后进行内爆。像这样:

for ($i = 0; $i < count($smile); $i++){
    if (is_array($smile[$i])){
        $smile[$i] = implode($smile[$i], ',');
    }
}

$result = implode($smile, ',');

如果您不知道嵌套的级别,可以使用递归。例如,这样的事情应该有效:

function collapse($array, $glue = ','){
    for ($i = 0; $i < count($array); $i++){
        if (is_array($array[$i])){
            $array[$i] = collapse($array[$i], $glue);
        }
    }

    return implode($array, $glue);
}

$imploded = collapse($smile, ',');