suchen

Heim  >  Fragen und Antworten  >  Hauptteil

php如何获取foreach+递归返回的数组

public static function getchildroles($phone,$name)
    {
        //根据手机号查找第一层子元素
        $children = User::where('tphone',$phone)->get();
        if(!empty($children))
        {
            //获取第一层子元素数量
            $childonenum = array($name => $children->count());
            //循环第一层子元素
            $result = array();
            foreach($children as $child)
            {
                //获得第一层子元素的用户组
                $child_rolename = $child->roles->first()->name;
                //echo $child_rolename;
                //依次存入数组
                $data[] = $child_rolename;
                //获得一层子元素的手机号
                $child_phone = $child->phone;
                $child_name = $child->name;
                $data = array_merge($childonenum, $data);
                //$result = array_merge($result, $data);
                self::getchildroles($child_phone,$child_name);
                print_r($data);
            }
            //$data = array_merge($data, $data);
            //print_r($result);
            return $result;
        }
<p>
    }
</p>

树形结构,查找某个人下面的所有子元素,该如何把每次循环获得的数组合并成一个数组并返回?


PHP中文网PHP中文网2971 Tage vor1834

Antworte allen(1)Ich werde antworten

  • PHP中文网

    PHP中文网2016-10-09 11:50:25

    完全不知道你到底要做成什么样子,建议给个输出的样例。

    另外,处理无限分类这种代码性能一般会很糟糕,你可以试试在数据库里建立四层每层超过四个元素,从最顶层一次读取需要消耗多少时间。

    如果性能确实很差,就必须使用使用SQL处理。两种数据表的设计对应两种方法


    Antwort
    0
  • StornierenAntwort