美文网首页
php 递归一棵树

php 递归一棵树

作者: chinariver | 来源:发表于2018-04-17 19:09 被阅读0次

基于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;

}

最终效果

http://www.htmleaf.com/jQuery/Chart/201602233135.html

相关文章

  • php 递归一棵树

    基于yii2框架: controller: public function actionDigui() { $...

  • php递归堆栈简介

    php 递归、效率和分析 递归的定义递归(http:/en.wikipedia.org/wiki/Recursiv...

  • PHP递归

    最后输出结果为: 321

  • 递归函数

    将分类递归,上下级排序 【PHP】 【JS】

  • PHP中一些函数方法

    php自定义函数之递归函数 php自定义函数之静态变量 php​ 使用系统内置函数 亚麻跌”是PHP学习时间处理的...

  • php递归算法

    我们都知道,编程有两大难点:指针和递归。这里说一说递归。 一、什么是递归函数呢? 递归函数就是直接或间接...

  • PHP递归函数

    很多同学在学习递归函数的时候会感到头晕,无法搞清楚递归函数的原理和运行机制,本文将给大家详细讲解递归函数的运行机制...

  • PHP递归函数

    递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,...

  • PHP 递归函数

    1.直接显示没有层级显示区别 public function tree($userinfo, $id, &$chi...

  • php实现无限极分类

    一、两种实现php无限极分类 设置原始数据 1. 使用php递归实现php无限极分类 通过foreach循环实现无...

网友评论

      本文标题:php 递归一棵树

      本文链接:https://www.haomeiwen.com/subject/vgmpkftx.html