【发布时间】:2022-01-07 18:11:48
【问题描述】:
我创建了一个函数,该函数为所选父级的后代返回一个数据数组。
首先,它检查我们已为其提供 UUID 的父级的子级,然后检查这些子级的其他子级,依此类推,最终返回所选父系谱系中所有用户的数组。
Example of my DB Table
**id, name, uuid, parent**
1, John, 0001, none
2, Steve, 0002, 0001
3, Mark, 0003, 0001
4, Kevin, 0004, 0002
5, Adam, 0005, 0003
function checkForChildren($uuid, $conn){
global $familyArray;
$sql = "SELECT id, uuid, name FROM people WHERE parent = '".$uuid."'";
$result = mysqli_query($conn, $sql);
/*-- Data has been found --*/
if (mysqli_num_rows($result) > 0){
foreach ($result as $row){
$familyArray[]=
[
'id' => $row['id'],
'uuid' => $row['uuid'],
'name' => $row['name']
];
checkForChildren($row['uuid'],$conn);
}
}
return $familyArray;
}
代码工作正常与 $familyArray 作为一个全局变量,但我已经明白使用全局变量不是一个好习惯。
没有 $familyArray 是全局的,该函数不再返回完整的家族血统,只返回我们最初输入函数的父 $uuid 的直系后代。
有没有人知道如何在没有全局数组的情况下完成这项工作?
提前致谢。
【问题讨论】:
标签: php arrays function recursion global-variables