将父子数组转换为ul li

时间:2017-09-29 02:05:25

标签: php pdo

我从数据库获取用户名(子)和推荐(父)记录,并通过以下代码将它们放入数组中:

$sql = "SELECT username, referral FROM acc_status";
        $q = $conn->prepare($sql);
        $q->execute(array());
        $data = array();
        while($row = $q->fetch(PDO::FETCH_ASSOC)){
            $data[] = $row;
        }


        $map = array(); 
        foreach ($data as $node) {
            // init parent
            if (!array_key_exists($node['referral'], $map)) {
                $map[$node['referral']] = array();
            }

            // add to parent
            $map[$node['referral']][$node['username']] = & $map[$node['username']];
        }

        echo '<pre>';
        print_r($map["123"]); //get parents and child of username "123" only.
        echo '</pre>';  

这是输出: enter image description here

现在我想将数组转换为ul和li列表,下面是代码:

       function printTree($tree) {
            if(!is_null($tree) && count($tree) > 0) {
                echo '<ul>';
                foreach($tree as $node) {
                    echo '<li>'.$node['referral'];//error here
                    printTree($node['username']);//error here
                    echo '</li>';
                }
                echo '</ul>';
            }
        }
        printTree($map["123"]);

我收到2个错误:

1)注意:未定义的索引:推荐

2)注意:未定义索引:用户名

如何解决错误?

1 个答案:

答案 0 :(得分:0)

我会在这里简要介绍一下,只需输入你的推荐名称,用户名就是你的索引。所以对于$node['username'],它将是qqq我没有我的计算机和我一起显示工作代码,但这就是它将会是什么。