在php中将数组转换为treeview

时间:2017-10-13 12:14:18

标签: php arrays treeview

如何在php中将数组转换为treeview

下面是我的数组

Array
(
    [0] => Array
        (
            [efi] => Array
                (
                )
        )
    [1] => Array
        (
            [grub] => Array
                (
                    [0] => Array
                        (
                            [fonts] => Array
                                (
                                )
                        )
                    [1] => Array
                        (
                            [i386-pc] => Array
                                (
                                )
                        )
                    [2] => Array
                        (
                            [locale] => Array
                                (
                                )
                        )
                    [3] => Array
                        (
                            [x86_64-efi] => Array
                                (
                                )
                        )
                )
        )
)

我希望输出为树视图

  • EFI

  • 平头

在grub下我想要

  • 字体

  • I386-PC

  • 区域设置

  • x86_64的-EFI

我在下面的代码中使用了相同的

function generateTreeMenu($dir_array, $parent = 0, $limit=0){
            if($limit > 1000) return '';
            $tree = '';
            $tree = '<ul>';
            for($i=0, $ni=count($dir_array); $i < $ni; $i++){
                if($dir_array[$i]['parent_id'] == $parent){
                    $tree .= '<li><a>';
                    $tree .= $dir_array[$i]['title'].'</a>';
                    $tree .= generatePageTree($dir_array, $dir_array[$i]['id'], $limit++);
                    $tree .= '</li>';
                }
            }
            $tree .= '</ul>';
            return $tree;
}

generateTreeMenu($dir_array);
它显示警告 未定义的属性:

中的stdClass :: $ parent_id

1 个答案:

答案 0 :(得分:1)

以下是我的解决方案,基于您的帖子:

Theme.innerInstances = {
  instance: WrappedComponent,
  innerInstances: WrappedComponent.innerInstances,
};

Validator.innerInstances = {
  instance: WrappedComponent,
  innerInstances: WrappedComponent.innerInstances,
};

我删除了$ parent,因为我不需要它。然后,由于构建数组的方式,将忽略整数索引。如果您可以修改数组,则可以简化它并完全删除整数索引,并将其视为哈希表。它会使递归代码更简单。