【问题标题】:hierarchical array for json treemaker js data in json phpjson php中json treemaker js数据的分层数组
【发布时间】:2022-06-16 22:58:08
【问题描述】:

我正在尝试从数据库中为 treemaker.js 填充数据 json

My data

现在我预计 json 的输出应该是这样的:

let tree = { 
    '1': {
        '2': {
            '3': {
                '5': '',
                '6': '',
            },
            '4': {
                '7': '',
                '8': '',
                '9': '',
            },
        },
    },
};

我已经试过了:

function buildTree(array $elements, $parentId = 0) {
    $branch = [];
    $new = [];
    foreach ($elements as $element) {
        if ($element['parent_id'] == $parentId) {
            $children = $this->buildTree($elements, $element['id']);
            if ($children) {
                $element[$element['id']] = $children;
            } else {
                $element[$element['id']] = '';
            }
            unset($element["id"]);
            unset($element["root"]);
            unset($element["parent_id"]);
            $branch[] = $element;
        }
    }
    return $branch;
}

public function test($id)
{
    $data = $this->Data_model->getDataByRoot($id)->result_array();
    $tree = $this->buildTree($data);
    echo "<pre>";
    print_r( json_encode($tree, JSON_PRETTY_PRINT|JSON_FORCE_OBJECT));
}

,我从here得到参考

但结果就像this

你们能告诉我如何按照我的预期完成这项工作吗?

谢谢

【问题讨论】:

    标签: javascript php arrays json multidimensional-array


    【解决方案1】:

    这是我的解决方案:

    function buildTree(array &$elements, $parentId = 0)
    {
        $branch = [];
    
        foreach ($elements as $element) {
            if ($element['parent_id'] == $parentId) {
                $id = $element['id'];
                $children = buildTree($elements, $id);
    
                if ($children) {
                    $branch[$id] = $children;
                } else {
                    $branch[$id] = '';
                }
            }
        }
        return $branch;
    }
    

    【讨论】:

      猜你喜欢
      • 2020-08-26
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多