PHP数组到树
我有一个数组,其值如下:PHP数组到树,php,mysql,arrays,tree,converter,Php,Mysql,Arrays,Tree,Converter,我有一个数组,其值如下: array ( array(a, a, a), array(a, a, b), array(a, b, a), array(b, c, d) ) 我想将此数组转换为具有关联数组的树,如下所示: array ( a => array ( a => array(a, b), b => array(a) ), b => array ( c => ar
array (
array(a, a, a),
array(a, a, b),
array(a, b, a),
array(b, c, d)
)
我想将此数组转换为具有关联数组的树,如下所示:
array (
a => array (
a => array(a, b),
b => array(a)
),
b => array (
c => array(d)
)
)
我花了几个小时试图解决这个问题。有人知道这个问题的解决办法吗?第一个数组的值来自mysql数据库,它们是按顺序排列的。只有两个级别:
$a = array (
array(a, a, a),
array(a, a, b),
array(a, b, a),
array(b, c, d)
);
$out = array();
foreach ($a as $row) {
$out[$row[0]][$row[1]][] = $row[2];
}
echo '<pre>';
print_r($out);
//
编辑:
使用基于阵列长度的最大深度:
$result = array();
foreach ($initial_array as $row) {
$result[$row[0]][$row[1]][] = $row[2];
}
//在
如果$input数组元素是长度不同的数组,则会出现问题
代码可以很容易地更改,因此它将适用于结果树的任何深度。您已经回答了问题。您想要的结构正是您需要在PHP中构建的结构。如果您了解了如何在PHP中构建/访问多维数组的基本概念,这将成为一个很小的问题。如果没有给出深度,这件事实际上很有趣:这是一个很好的解决方案,但如果我可以指定数组的深度,那会更好。我的意思是,我需要将其用于更多的数组,比如我问题中的数组,因此最好是使其动态化。这是一个很好的解决方案,但如果我可以指定数组的深度则更好。我的意思是,我需要将它用于更多的数组,比如我问题中的数组,所以最好是使其动态化
$result = array();
foreach ($initial_array as $row) {
$result[$row[0]][$row[1]][] = $row[2];
}