我有一个像:
这样的数组array(
0 => array("a", "b", "c", ... n),
1 => array("a", "b", "d", ... n),
2 => array("e", "b", "c", ... n),
.
n
);
n长度向下和向下。 我想要一个树形数组,如:
a {
b {
c {null}
d {null}
}
}
e {
b {
c {null}
}
}
直接地,类似于: How to convert array to tree? 但是在PHP代码和' n'长度阵列
我的代码,翻译自javascript:
$tree = array();
function addToTree($tree, $array) {
$length = count($array);
for($i=0; $i<$length; $i++) {
$tree = $tree[$array[$i]] = (($i == $length - 1) ? null : $tree[$array[$i]] || array());
}
return $tree;
}
答案 0 :(得分:0)
答案与基督徒的答案相同,只需要编辑php右语法。
function addToTree($tree, $array) {
for ($i = 0, $length = count($array); $i < $length; $i++) {
$tree = $tree[array[$i]] = (($i == $length - 1) ? null : $tree[array[$i]] || {})
}
}
// or, without the i == length - 1 check in each iteration:
function addToTree(tree, array) {
for ($i = 0, $length = count($array); $i < $length -1; $i++) {
$tree = $tree[array[$i]] = $tree[array[$i]] || {};
}
$tree[array[$i]] = null;
}