我有一系列看起来像这样的网址:
$arr = [
'/foo' => 'callback',
'/foo/bar' => 'callback',
'/foo/bar/baz' => 'callback',
'/bar/baz' => 'callback',
];
我想将此数组转换为树结构,但我不知道该怎么做。我在explode
字符上尝试/
。
它应该是这样的:
$arr = [
'foo' => [
0 => 'callback',
'bar' => [
0 => 'callback',
'baz' => [
0 => 'callback',
],
],
],
'bar' => [
'baz' => [
0 => 'callback',
],
],
];
答案 0 :(得分:-1)
我做了一个简单的功能,将你的阵列变成一个三维的阵列:
function tri_array($array) {
$result = array();
foreach ($array as $k => $v) {
$ev = explode("/", $k);
$ev[2] = $ev[2] ? $ev[2] : 0;
$ev[3] = $ev[3] ? $ev[3] : 0;
$result[$ev[1]][$ev[2]][$ev[3]] = $v;
}
return $result;
}