В каждом элементе массива второе значение указывает на родителя самого элемента.Так, например, в первом массиве «City» является корневым элементом, а «Area» является первым дочерним, поскольку второй элемент «Area» (1) указывает на ключ «City».
Образцы данных
$locations = array(
3 => array("Building", 2),
2 => array("Area", 1),
0 => array("Floor", 3),
1 => array("City"),
4 => array("Room", 0),
13 => array("Building1", 12),
12 => array("Area1", 11),
14 => array("Room1", 10),
10 => array("Floor1", 13),
11 => array("City1")
);
Ожидаемый результат
Room > Floor > Building > Area > City
Room1 > Floor1 > Building1 > Area1 > City1
Мое решение
$route = [];
foreach ($locations as $locationKey => $locationArray) {
if (!isset($locationArray[1])) continue;
$nextLocation = $locations[$locationArray[1]][0];
$route[] = $nextLocation;
}
Но это не такдобавить массив без индекса, указанного в массиве, например, индекс 4 array("room", 0);
Кроме того, я не могу понять, как разделить маршруты, если один маршрут закончен
Вывод, который я получаю:
Array
(
[0] => Area
[1] => City
[2] => Building
[3] => Floor
[4] => Area1
[5] => City1
[6] => Floor1
[7] => Building1
)