$files = [];
$za = new ZipArchive();
// получаем список файлов из архива
$za->open('/path/to/your.zip');
for( $i = 0; $i < $za->numFiles; $i++ ){
$stat = $za->statIndex( $i );
if(substr($stat['name'], -1, 1) !== '/') {
$files[] = $stat['name'];
}
}
// строим массив
function buildArray($array) {
rsort($array);
$result = [];
foreach ($array as $item) {
$parts = explode('/', $item);
$current = &$result;
for ($i = 1, $max = count($parts); $i < $max; $i++) {
if (!isset($current[$parts[$i - 1]])) {
$current[$parts[$i - 1]] = [];
}
$current = &$current[$parts[$i - 1]];
}
$last = end($parts);
if (!isset($current[$last]) && $last) {
$current[] = end($parts);
}
}
return $result;
}
print_r(buildArray($files));
есть простор для оптимизации, но мне лениво этим заниматься. А я не прав насчет священного гнева? Пяти минут не прошло, как прибежал "воин света" биться за поруганную честь :)пяти минут не прошло, да - прошло десять.
Любые попытки что-либо обьяснить аудиофилам разбиваются об "теплый ламповый звук"так ты не объясняешь - ты набрасываешь.
как всегда яббланутые в своем священном гневе тут же сбегаютсяАлександр Сёмченко же прав: ты выдал набор стереотипов, не имеющих отношения к действительности.
или ты врубаешь js и пользуешься, или возмущаешься и сосешь.