我试图将这个多维数组内爆成一个字符串:
$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
我怎么能这样做?
答案 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, ',');