gpt4 book ai didi

php - 如何编写一个函数来获得树结构的输出

转载 作者:可可西里 更新时间:2023-11-01 06:30:37 26 4
gpt4 key购买 nike

enter image description here

我有一个名为login 的表。在此我有 3 列 id、name 和 ref。人们可以引用其他人在网站上注册。 Adminno reference 所以ref 值为0A & c 属于 admin,因此它们的 ref 值为 1B、D 和 G 位于 A 之下,因此它们的 ref 值为 2E 和 F 位于 B 之下 一个人最多可以推荐 3 个人。 .我需要把输出放在这样的表中

enter image description here

最佳答案

使用这段代码得到想要的输出

<?php 
$connection = mysqli_connect('localhost', 'root', '', 'db_mani'); //connection

$sql = "SELECT * FROM users";
$result = mysqli_query($connection, $sql);
$usersArray = array();
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)) {
$usersArray[]= $row; ///will create array of users
}
}

function makeMenu($items, $parentId) //will create array in tree structure
{
$menu = array_filter($items, function ($item) use ($parentId) {
return $item['ref'] == $parentId;
});
foreach ($menu as &$item)
{
$subItems = makeMenu($items, $item['id']);
if (!empty($subItems))
{
$item['child'] = $subItems;
}
}
return $menu;
}

function print_users($usersArray,$ref = 'Admin')
{
$str ='<table border="1" width ="300" style="text-align:center;"><tr>';
foreach($usersArray as $user)
{
$str.='<td>'.$user['name'].' (Ref:'.$ref.')';
if(!empty($user['child']))
{
$str.= print_users($user['child'],$user['name']);
}
$str.='</td>';
}
$str.='</tr></table>';
return $str;
}


$usersArray = makeMenu($usersArray,0); ///call with parent id 0 for first time, this will give usres in tree structure
echo print_users($usersArray); // print users
?>

最终结果:

enter image description here

数据库结构:

enter image description here

我希望这能解决您的问题。谢谢。

关于php - 如何编写一个函数来获得树结构的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38931659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com