我正在使用一个MLM应用程序,其中我需要将所有用户显示为一棵树。为此,实现了用户之间的父子关系。我的表结构在这里:



我已经根据关系在多维数组中检索了用户的ID。这是数组:-



为此,我使用了以下代码:-

<?php
$con = mysql_connect('localhost', 'root', '');
mysql_select_db('testapp', $con);

function create_tree( $parent_id = 0 )
{
    $result_array = array();
    $Query = 'SELECT * FROM `user` WHERE `parent`=\''.$parent_id.'\';';
    $query_result = mysql_query($Query);
    if(mysql_num_rows($query_result)>0)
    {
        while($row = mysql_fetch_assoc($query_result))
        {
            if(!array_key_exists($row['user_id'], $result_array))
            {
                //$result_array[$row['user_id']] = $row;
                $result_array[$row['user_id']] = create_tree($row['user_id']);
            }
        }
    }
    return $result_array;
}
$tree = create_tree();
print_r($tree);


现在,我需要以树形结构显示数据:-


任何提示都会有所帮助。我非常接近完成此任务...

最佳答案

是的,你很近.. !!

试试下面,它将为您工作。

<?php
$con = mysql_connect('localhost', 'root', '');
mysql_select_db('testapp', $con);

function create_tree( $parent_id = 0 ,$result_array = array())
{

$Query = 'SELECT * FROM `user` WHERE `parent`=\''.$parent_id.'\';';
$query_result = mysql_query($Query);
if(mysql_num_rows($query_result)>0)
{
    while($row = mysql_fetch_assoc($query_result))
    {
        if(!array_key_exists($row['user_id'], $result_array))
        {
            //$result_array[$row['user_id']] = $row;
            $result_array[$row['user_id']] = create_tree($row['user_id'],$result_array);
        }
    }
}
return $result_array;
}
$tree = create_tree();
print_r($tree);
?>


如果这对您不起作用,请让我知道。

谢谢..

关于php - 如何将多维数组键作为树返回?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16621543/

10-14 15:43
查看更多