PHP语言之递归一棵树
小标 2018-07-26 来源 : 阅读 1293 评论 0

摘要:本文主要向大家介绍了PHP语言之递归一棵树,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言之递归一棵树,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

基于yii2框架:

controller:

public function actionDigui()

{

    $uid = $this->current_user['uid'];

    $userid = '';

    $dataWxUsers = WxUsers::getWxusersByuid($uid);

    if (!empty($dataWxUsers)) {

        $userid = $dataWxUsers['userid'];

}

    $mydata = self::getWeiXininfo($userid);

    $data = WxUserRelation::getMySub($userid);

    $list = [

        'name' => isset($mydata['nickname']) ? $mydata['nickname'] : '',

        'title' => '下级列表',

        'relationship' => ['children_num'=>count($data)],

        'children'=>$data

    ];

    print_r($list);

    die;

}

WxUserRelation这个model中添加2个方法:

public static function getMySub($userid)

{

    $mysub = self::getSubordinate($userid);

    if (!empty($mysub)) {

        foreach ($mysub as $key => $value) {

            $mysub[$key]['children'] = self::getMySub($value['userid']);

}

        return $mysub;

}

}

/**

* 获取我的下级

* @param $userid

* @return array|\yii\db\ActiveRecord[]

*/

public static function getSubordinate($userid)

{

    if (empty($userid)) {

        return [];

}

    $data = self::find()->select('userid')->where(['parentuserid' => $userid])->asArray()->all();

    $number = self::find()->select('userid')->where(['parentuserid' => $userid])->count();

    if (!empty($data)) {

        foreach ($data as $key => $value) {

            $weixininfo = self::getWeiXininfo($value['userid']);

            $data[$key]['title'] = !isset($value['userid']) ? '' : $value['userid'];

            $data[$key]['name'] = isset($weixininfo['nickname']) ? $weixininfo['nickname'] : '';

            $data[$key]['relationship'] = [

                'children_num' => $number,

                'parent_num' => 1,

                'sibling_num' => 1

            ];

}

}

    return empty($data) ? [] : $data;

}

以上就介绍了PHP的相关知识,希望对PHP有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言PHP频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程