数组中的每个元素,第二个值指向该元素本身的父级。例如,在第一个数组中,“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")
);
预期输出
房间 > 楼层 > 建筑物 > 区域 > 城市
房间1 > 楼层1 > 建筑物1 > 区域1 > 城市1
我的解决方案
$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
)