Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-MLM在树的相应一侧显示节点_Php_Binary Tree_Mlm - Fatal编程技术网

PHP-MLM在树的相应一侧显示节点

PHP-MLM在树的相应一侧显示节点,php,binary-tree,mlm,Php,Binary Tree,Mlm,我正在用PHP构建一个二叉树。到目前为止,一切看起来都很好,但现在我遇到了一个问题。当我们将右节点放在左节点之前时,我放置在右侧的节点显示在左侧。若我们将左节点放在前面,右节点放在后面,那个么系统看起来不错。以下是我的php数组的json格式结构: [{"id":"158","parent_id":"157","side":"right","username":"okamikid1"},{"id":"160","parent_id":"157","side":"left","username":

我正在用PHP构建一个二叉树。到目前为止,一切看起来都很好,但现在我遇到了一个问题。当我们将右节点放在左节点之前时,我放置在右侧的节点显示在左侧。若我们将左节点放在前面,右节点放在后面,那个么系统看起来不错。以下是我的php数组的json格式结构:

[{"id":"158","parent_id":"157","side":"right","username":"okamikid1"},{"id":"160","parent_id":"157","side":"left","username":"okamikid2"}]
我正在使用下面的函数使它成为一个层次视图

function tree($elements) {
        foreach ($elements as $row) {
            $row['children'] = array();
            $vn = "row" . $row['id'];
            ${$vn} = $row;
            if(!is_null($row['parent_id'])) {
                $vp = "parent" . $row['parent_id'];
                if(isset($data[$row['parent_id']])) {
                    ${$vp} = $data[$row['parent_id']];
                }
                else {
                    ${$vp} = array('id' => $row['parent_id'], 'username' => $row['username'], 'parent_id' => null, 'children' => array());
                    $data[$row['parent_id']] = &${$vp};
                }
                ${$vp}['children'][] = &${$vn};
                $data[$row['parent_id']] = ${$vp};
            }
            $data[$row['id']] = &${$vn};
        }
        return array_filter($data, function($elem) { return is_null($elem['parent_id']); });

    }
产生此输出的上述函数:

{"157":{"id":"157","username":"okamikid1","parent_id":null,"children":[{"id":"158","parent_id":"157","username":"okamikid1","children":[]},{"id":"160","parent_id":"157","username":"okamikid2","children":[]}]}}
请帮助我使用
功能,并让我知道如何在其各自的一侧显示节点?非常感谢你的帮助