@TANK_IST

Как написать код для данной задачи?

Есть массивы:
Ключ - id папки, значение - имя папки:
Array(
 [3] => other
 [13] => MAZ
 [11] => LOL
 [9] => pack
)

Ключ - id папки, значение - id родителя папки:
Array(
 [13] => 11
 [11] => 9
)

Массив требований:
Array(11, 13)

Как написать код который составляет пути папок из массива требований?
Например:
Для папки 11 путь будет такой: pack:LOL
Для папки 13 путь будет такой: pack:LOL:MAZ
  • Вопрос задан
  • 2374 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
$dirMapping = [
 3 => 'other'
 13 => 'MAZ'
 11 => 'LOL'
 9 => 'pack'
];

$hierarchy = [
   13 => 11
   11 => 9
];

$ids = [11, 13];
$paths = [];
foreach ($ids as $current) {
    $path = [];
    // повторяем пока мы не дойдем до последнего
    while(isset($hierarchy[$current])){
        $path[] = $dirMapping[$current];
        $current = $hierarchy[$current];
    }; 
    $path[] = $dirMapping[$current];
    $paths[] = join(':', array_reverse($path));
}


не проверял работоспособность, но суть такая. Можно придумать чуть по лучше вариант но лень.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы