@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));
}


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

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

Войти через центр авторизации
Похожие вопросы
15 мая 2024, в 22:07
3000 руб./за проект
15 мая 2024, в 22:06
3000 руб./за проект
15 мая 2024, в 20:48
5000 руб./за проект