Php 将父子数组转换为ul li

Php 将父子数组转换为ul li,php,pdo,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)){

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

$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>';  
$sql=“选择用户名,从acc\U状态转诊”;
$q=$conn->prepare($sql);
$q->execute(array());
$data=array();
而($row=$q->fetch(PDO::fetch\U ASSOC)){
$data[]=$row;
}
$map=array();
foreach($data作为$node){
//初始父级
如果(!array_key_存在($node['reference',$map)){
$map[$node['reference']]=array();
}
//添加到父级
$map[$node['referral'][$node['username']]=&$map[$node['username']];
}
回声';
       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"]);
印刷品($map[“123”])//仅获取用户名“123”的父项和子项。 回声';
       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"]);
以下是输出:

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

函数printree($tree){
如果(!is_null($tree)&&count($tree)>0){
回声“
    ”;
           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"]);
    
    foreach($tree作为$node){ echo“
  • ”.$node['reference'];//此处出错
           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"]);
    
    printTree($node['username']);//此处出错 回音“
  • ”;
           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"]);
    
    } 回声“
”;
       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"]);
} } printTree($map[“123”]);
我有两个错误:

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

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


如何修复错误?

我将在这里简单介绍一下,简单地说,您的推荐名称和用户名实际上是您的索引。因此,对于
$node['username']
来说,这将是qqq,因为我没有随身携带电脑来显示工作代码,但这就是它将是什么