«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2019/04/27 19:22:18  №1390215 1
image.png (18, 265x559)
559x265
image.png (9, 1626x41)
41x1626
На собеседовании не сделал одно задание, подобное которому когда-то пытался сделать, но были проблемы.
Есть многомерный массив папок и файлов, вложенных в папки, пустые папки, либо просто файлы в корне.
$folders=array("Папка А"=>array("Папка B"=>array(), "Папка C"=>array("Файл 1", "Файл 2", "Файл 3"), "Файл 10", "Файл 11", "Файл 12"), "Файл 20", "Файл 21", "Файл 22", "Папка G"=>array());

Нужно вывести деревом как на пикрилейтед 1 с помощью функции рекурсии.

Проблемы возникают в том, что массив "Папка A" считается как ассоциативный и не идёт ключём [0], к примеру, в итоге возникают сложности с форичем. Пикрил 2.

Для начала пытался без рекурсии вывести. Более менее работает такой код, но по-ебаному совсем.

foreach ($folders as $key=>$value){
echo "$key - $value<br>";
if(is_array($value)&&count($value)>0) {
foreach ($value as $tmp=>$key2){
echo "$tmp - $key2<br>";
if(is_array($key2)&&count($key2)>0){
foreach ($key2 as $tmp2=>$key3){
echo "$tmp2 - $key3 <br>";
}
}
}
}
}
Ответы: >>1390217 >>1390238 >>1390358
Аноним 2019/04/27 19:24:42  №1390217 2