Php 生成类似于类别、子类别和子类别的同级数组中的问题

Php 生成类似于类别、子类别和子类别的同级数组中的问题,php,arrays,Php,Arrays,我想让完全动态的屏幕上的类别,子类别和兄弟姐妹的子类别,我有数组如下所示 array( array( 'ID' => '1', 'Name' => 'ABC', 'Subcategory' => '', 'ParentID' => '0' ), array( 'ID' => '2', 'Name' => 'DEF',

我想让完全动态的屏幕上的类别,子类别和兄弟姐妹的子类别,我有数组如下所示

array(
    array( 
        'ID' => '1',  
        'Name' => 'ABC', 
        'Subcategory' => '', 
        'ParentID' => '0'
    ), 
    array(
        'ID' => '2',
        'Name' => 'DEF', 
        'Subcategory' => array(
            'ID' => '3',
            'Name' => 'QFE',
            'Subcategory' => array(
                [0] => stdClass Object(
                    [ID] => 5, 
                    [categoryname] => Main Menu, 
                    [type] => redirectLink, 
                    [redirection_link] => main menu, 
                    [position] => center, 
                    [position_from] => , 
                    [parent_id] => 4, 
                    [sequence] => 0
                ),
                [1] => stdClass Object (
                    [ID] => 6, 
                    [categoryname] => In Range,  
                    [type] => screenTitle, 
                    [redirection_link] => , 
                    [position] => right, 
                    [position_from] => 5, 
                    [parent_id] => 4,
                    [sequence] => 0, 
                ),
            ), 
            'ParentID' => '2'
        ), 
        'ParentID' => '0'
    ), 
);
为了制作这个数组,我尝试了以下函数

功能选择全部($con){
$table_name=“从“类别”中选择*”;
$table\u name\u result=mysqli\u查询($con,$table\u name);
$array=mysqli\u fetch\u all($table\u name\u result,mysqli\u ASSOC);
返回$array;
}   
函数构建树(数组$elements,$parentId=0){
$branch=array();
foreach($elements作为$element){
if($element['parent_id']==$parentId){
$children=buildTree($elements,$element['ID']);
if(儿童){
$element['subcategories']=$children;
}
$branch[]=$element;
}
}
返回$branch;
}
$select_all=select_all($con);
$subcategory=buildTree($select_all);
//echo json_encode($子类别);模具();
echo json_编码(数组_映射(“utf8_转换器”,$subcategory));
有了这段代码,我得到了上面的数组,但我想要数组,就像ID6的位置和ID5一样,它必须生成一个对象

我在buildTree()中尝试了以下代码

但它不起作用

有人能帮我吗

if ($children) {
   $element['subcategories'] = $children;
}
if ($element['position_from'] != '') {
   $sibling = buildTree($elements, $element['position_from']);
   $element['sibling'] = $sibling;
}