【技术积累】树形结构的循环查找实现案例1

无限级服务端数据组织方案的实现,提供解决方案,其中数据库查询可替换为List的方式查找等其它方式。

function queryAllSubCustomers($cstId) {
    $sqlA="SELECT ID, Name, ParentID FROM T_CustomerInfo WHERE ID = $cstId ";
    $custList=Sql_Query($sqlA);
    $AllCustInfs=array();
    $AllLevelCust=array();
    $CurrentLevel=0;

    $result=array();
    while(count($custList) > 0) {
        // 组建当前客户列表,获取所有id
        $AllLevelCust[$CurrentLevel]=array();
        $countNum = count($custList);
        $subCustIds=" (";
        //print_r($custList);
        for ($i=0; $i<$countNum; $i++) {
            $custInf = $custList[$i];
            $node=array();
            $node['id']=$custInf['ID'];
            $node['text']=$custInf['Name'];
            array_push($AllCustInfs,$node);
            array_push($AllLevelCust[$CurrentLevel],$node);
            $subCustIds = $subCustIds.$custInf['ID']."," ;
        }

        $subCustIds = substr($subCustIds,0,-1).") ";
        $CurrentLevel++;
        // 查询下级客户
        $sql="SELECT ID, Name, ParentID FROM T_CustomerInfo WHERE ParentID <> 0 AND ParentID IN $subCustIds ";
        unset($subCustIds);
        unset($custList);
        $custList=Sql_Query($sql);
        //print_r($custList);
    }
    return $AllCustInfs; //返回全部客户列表
    //return $AllLevelCust; //返回按层级划分的客户列表
}

树形结构组织方式:遍历按层级划分的列表,遍历倒数第一层,将倒数第二层的children添加,再依次向上组织,直至第一层添加完children,取第一层的所有结点即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值