是否可以从已知节点路径创建嵌套数组?(PHP和SQL Server)
这个问题可能是愚蠢的琐碎,但经过数小时的不成功的研究(也许此时我的头脑已经融化,我无法理解一个是否可以从已知节点路径创建嵌套数组?(PHP和SQL Server),php,sql-server,database,algorithm,Php,Sql Server,Database,Algorithm,这个问题可能是愚蠢的琐碎,但经过数小时的不成功的研究(也许此时我的头脑已经融化,我无法理解一个$a=1分配),我感到不得不寻求帮助 我正试图找出如何构建嵌套数组(构建可导航树),因为存储过程的结果如下: ----------------------------------------------------------------------------- | RegionID | CountryID | CityID | StoreID | RegionName Country
$a=1
分配),我感到不得不寻求帮助
我正试图找出如何构建嵌套数组(构建可导航树),因为存储过程的结果如下:
-----------------------------------------------------------------------------
| RegionID | CountryID | CityID | StoreID | RegionName Country Name |
|---------------------------------------------------------------------------
| 1 | 1 | 1 | 1 | Europe Albania |
| 1 | 1 | 2 | 2 | Europe Albania |
| 1 | 2 | 3 | 3 | Europe Andorra |
| 2 | 3 | 4 | 4 | North America Canada |
| ... | ... | ... | ... | |
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
|RegionID | CountryID | CityID | StoreID | RegionName国家名称|
|---------------------------------------------------------------------------
|1 | 1 | 1 | 1 |欧洲阿尔巴尼亚|
|1 | 1 | 2 | 2 |欧洲阿尔巴尼亚|
|1 | 2 | 3 | 3 |欧洲安道尔|
|2 | 3 | 4 | 4 |北美加拿大|
| ... | ... | ... | ... | |
-----------------------------------------------------------------------------
这样的数组将遵循以下层次结构:
地区>国家>城市>商店
我的第一种方法是通过对存储所有不同等价ID的不同表进行递归查询(例如,获取给定RegionID的所有CountryID等),填充嵌套数组并最终构建
结构来构建此结构
但我无法猜测的是,我是否可以从一个类似上面的单个查询开始构建这个层次结构,将ID(以“-”分隔)连接起来,作为从根(RegionID)到最后一片叶子(StoreID)的路径。
然后,我将以HTML格式呈现数组,如下所示:
<ul>
<li><a href="#" data-node="1-1">Albania</a></li>
<li>
<ul>
<li><a href="#" data-node="1-1-1">Tirana</a></li>
<li>
<ul>
<li><a href="#" data-node="1-1-1-1">Store #1</a></li>
</ul>
</li>
</ul>
</li>
</ul>
-
-
除了预期的代码行之外,还有几个问题:
非常感谢,您是否尝试过使用递归函数将这些数据转换为HTML树?我敢肯定,这是相对简单的眼睛,这可能是我正在寻找的。我只是想知道,从我的出发点来看,这是否是最有效的方法。我认为它是:对数据集的单个查询+一个空间和时间复杂度都为O(N)的算法。。。没有比这更优化的方法了。谢谢Andrea为我指路。最后,我已经能够使用递归函数构建树,但是我必须首先将数据准备到不同的数组中。明天我会发布我尝试过的方法,尽管我仍然认为这不是最好的方法。