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];
}