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>树形结构,查找某个人下面的所有子元素,该如何把每次循环获得的数组合并成一个数组并返回?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
完全不知道你到底要做成什么样子,建议给个输出的样例。
另外,处理无限分类这种代码性能一般会很糟糕,你可以试试在数据库里建立四层每层超过四个元素,从最顶层一次读取需要消耗多少时间。
如果性能确实很差,就必须使用使用SQL处理。两种数据表的设计对应两种方法