今日代码分析~这是获取所有下级用户,包括下级的下级的下级的下级的下级的....下级。


    /**
     *   计算所有下级数量
     */
    private function countAllChild($tempCount, $mid)
    {
        $tableShopMember = 'ewei_shop_member';
        $childrenDirect = pdo_getall($tableShopMember, ['agentid' => $mid]);// 直接下级
        $countCurr = count($childrenDirect);
        if ($countCurr > 0) {
            $tempCount += $countCurr;
            foreach ($childrenDirect as $l) {
                $childrenDirect1 = pdo_getall($tableShopMember, ['agentid' => $l['id']]);// 直接下级
                $countCurr1 = count($childrenDirect1);
                if ($countCurr1 > 0) {
//                    $tempCount += $countCurr;
                    $tempCount += $countCurr1;
                    $this->countAllChild($tempCount, $l['id']);
                }
            }
            return $tempCount;
        }
    }
讨论数量: 4

人人商城?微擎?

4年前 评论
你看我吊吗啊

@Wi1dcard 对 在微擎里安装的人人商城

4年前 评论
你看我吊吗啊
    public function countAllChildDo($uid)
    {
        $this->countAllChild(0, $uid);
        $count = count($this->childrenArray);
//        var_dump($count);
//        var_dump($this->childrenArray);
        return $count;
    }

    private $childrenArray = array();

    /**
     *   计算所有下级数量
     */
    private function countAllChild($tempCount, $mid)
    {
        $tableShopMember = 'ewei_shop_member';
        $childrenDirect = pdo_getall($tableShopMember, ['agentid' => $mid], array('id'));// 直接下级

        $countCurr = count($childrenDirect);
        if ($countCurr > 0) {
//            echo 'out-[' . $mid . ']的所有下级,个数是' . $countCurr;
//            echo json_encode($childrenDirect);
//            echo '<br/>';
//            $tempCount += $countCurr;
            foreach ($childrenDirect as $l) {
                $agentId = $l['id'];
                array_push($this->childrenArray, $agentId);
                $childrenDirect1 = pdo_getall($tableShopMember, ['agentid' => $agentId], array('id'));// 直接下级
                $countCurr1 = count($childrenDirect1);
//                echo 'int[' . $agentId . ']的所有下级  个数' . $countCurr1;
//                echo json_encode($childrenDirect1);
                if ($countCurr1 > 0) {
//                    $tempCount += $countCurr1;
//                    echo '<br/>' . '总数' . $tempCount . ',,,,';
                    $this->countAllChild($tempCount, $l['id']);
                }
//                此处应该等所有的子用户都没有下级之后才可进行停止递归查询
            }
        }
    }
4年前 评论
你看我吊吗啊

发现计数还得各种判断否则重复计数,直接用array存用户id然后count更方便。。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
热门动弹
暂无内容~