#php #arrays #multidimensional-array #implode
#php #массивы #многомерный массив #implode
Вопрос:
Я пытаюсь преобразовать этот тип массива в строку. Как я могу это сделать?
Array (
[58] => Array (
[272] => Array ( )
[273] => Array ( )
[274] => Array ( )
[275] => Array ( )
[276] => Array ( )
[507] => Array ( )
)
[182] => Array (
[46] => Array ( )
[96] => Array ( )
)
[271] => Array (
[2] => Array ( )
[75] => Array ( )
[80] => Array ( )
)
[277] => Array ( )
[278] => Array (
[4] => Array ( [174] => Array ( ) )
[14] => Array ( )
[36] => Array ( )
[57] => Array ( )
[279] => Array ( )
[280] => Array ( )
[281] => Array ( )
)
)
Я хочу получить результат, подобный: 58, 272, 273, 274, 275, 276, 507, 182 …
Комментарии:
1. Было бы полезно, если бы вы могли представить этот пример в правильном формате вместо одной длинной строки.
Ответ №1:
Я должен сказать, что ваш массив довольно странный, но вот что я получил из вашего кода и запроса :
$thing = Array (
58 => Array ( 272 => Array ( ), 273 => Array ( ), 274 => Array ( ), 275 => Array ( ), 276 => Array ( ), 507 => Array ( ) ),
182 => Array ( 46 => Array ( ), 96 => Array ( ) ),
271 => Array ( 2 => Array ( ), 75 => Array ( ), 80 => Array ( ) ),
277 => Array ( ),
278 => Array ( 4 => Array ( 174 => Array ( ) ), 14 => Array ( ), 36 => Array ( ), 57 => Array ( ), 279 => Array ( ), 280 => Array ( ), 281 => Array ( ) )
);
$temp=[];
function husk_that_thing($array,amp;$temp)
{
foreach ($array as $key => $value)
{
$temp[]=$key;
if($value)
{
husk_that_thing($value,$temp);
}
}
}
husk_that_thing($thing,$temp);
echo implode(',',$temp);//output
Комментарии:
1. Спасибо. все работает нормально.
Ответ №2:
Вы пробовали implode()? Смотрите это
Комментарии:
1. да. implode не работает для многодревесных массивов
2. Я не думаю, что в PHP есть встроенная функция, которая делает это.