html列表/php数组到多维数组php数组

html列表/php数组到多维数组php数组,php,arrays,multidimensional-array,menu,nested,Php,Arrays,Multidimensional Array,Menu,Nested,我有一个id为且父id为的数组,希望通过父id将其转换为多维数组。我要更改的数组如下: [0] => Array ( [menuid] => 395 [circuitname] => summer [menuname] => news [parentmenuid] => 0 [displayorder] => 1

我有一个id为且父id为的数组,希望通过父id将其转换为多维数组。我要更改的数组如下:

    [0] => Array
        (
            [menuid] => 395
            [circuitname] => summer
            [menuname] => news
            [parentmenuid] => 0
            [displayorder] => 1
        )

    [1] => Array
        (
            [menuid] => 2
            [circuitname] => summer
            [menuname] => Introduction
            [parentmenuid] => 395
            [displayorder] => 1
        )

    [2] => Array
        (
            [menuid] => 521
            [circuitname] => summer
            [menuname] => Celebrate 100
            [parentmenuid] => 2
            [displayorder] => 2
        )
    [3] => Array
        (
            [menuid] => 80
            [circuitname] => summer
            [menuname] => hello world
            [parentmenuid] => 0
            [displayorder] => 2
        )
    [4] => Array
        (
            [menuid] => 90
            [circuitname] => winter
            [menuname] => new page
            [parentmenuid] => 0
            [displayorder] => 2
        )
我希望层次结构的深度没有限制。我看过一些例子,可以将像我这样的数组转换成嵌套的html。不过,我只想将我的数组转换为php多维数组

我希望我的输出与此类似:

[0] => Array
        (
            [menuid] => 395
            [circuitname] => contact
            [menuname] => Contact Us
            [parentmenuid] => 0
            [displayorder] => 1
            [children] => Array
                (
                    [0] => Array
                        (
                            [menuid] => 500
                            [circuitname] => contact
                            [menuname] => Contact Us
                            [parentmenuid] => 395
                            [displayorder] => 1
                            [children] => Array
                                (
                                )

                        )

                    [1] => Array
                        (
                            [menuid] => 2
                            [circuitname] => diocese
                            [menuname] => Introduction
                            [parentmenuid] => 395
                            [displayorder] => 1
                            [children] => Array
                                (
                                )

                        )

你可以先把父母分开,在分开他们之后,你可以用foreach让剩下的孩子回到他们各自的父母身边。考虑这个例子:

$raw_values = array( array( 'menuid' => 395, 'circuitname' => 'summer', 'menuname' => 'news', 'parentmenuid' => 0, 'displayorder' => 1, ), array( 'menuid' => 2, 'circuitname' => 'summer',     'menuname' => 'Introduction', 'parentmenuid' => 395, 'displayorder' => 1, ), array( 'menuid' => 521, 'circuitname' => 'summer', 'menuname' => 'Celebrate 100', 'parentmenuid' => 2, '    displayorder' => 2, ), array( 'menuid' => 80, 'circuitname' => 'summer', 'menuname' => 'hello world', 'parentmenuid' => 0, 'displayorder' => 2, ), array( 'menuid' => 90, 'circuitname'     => 'winter', 'menuname' => 'new page', 'parentmenuid' => 0, 'displayorder' => 2, ),);
// get the parents first
$parents = array();
foreach($raw_values as $key => $value) {
    if($value['parentmenuid'] == 0) {
        $parents[$value['menuid']] = $value;
        unset($raw_values[$key]);
    }
}

// then reunite them to their children
foreach($raw_values as $key => $value) {
    $parents[$value['parentmenuid']]['children'][] = $value;
}

echo '<pre>';
print_r($parents);
echo '</pre>';
$raw\u values=array(array('menuid'=>395,'circuitname'=>summer,'menuname'=>news,'parentmenuid'=>0,'displayorder'=>1,),array('menuid'=>2,'circuitname'=>summer,'menuname'=>Introduction,'parentmenuid'=>395,'displayorder'=>1,),array('menuid'=>521,'circuitname'=>summer','Menuame'=>100,'parentmenuid'=>2,'displayorder'=>2,),数组('menuid'=>80,'circuitname'=>summer','Menuame'=>hello world',parentmenuid'=>0,'displayorder'=>2,),数组('menuid'=>90,'circuitname'=>'winter','MENUAME'=>'new page','parentmenuid'=>0','displayorder'=>2,,);
//先找父母
$parents=array();
foreach($key=>$value的原始值){
如果($value['parentmenuid']==0){
$parents[$value['menuid']]=$value;
未设置($raw_值[$key]);
}
}
//然后让他们和他们的孩子团聚
foreach($key=>$value的原始值){
$parents[$value['parentmenuid']['children'][]=$value;
}
回声';
打印(父母);
回声';

您能给出一个所需输出的示例吗?我已经编辑了我的问题。谢谢:)此链接似乎是一个解决方案