首先感谢stackoverflow提供这个平台和你,给新手一个帮助;-)
现在..我有 2 个表:页面和部分每个都有自己的 id。一页有一个或多个部分。一个部分恰好属于 1 页。两个 id 的列表序列在不同的字段中处理。
我读取了两个表并创建了一个(未排序的)数组。我最终需要的是一个排序列表,如下所示,page_id 和 section_id 的顺序正确。
这是检索数据后我的 tarray 的示例:
myArr[] = array( page_id=>2, section_id=>2, parent_id=>0, level=>0, page_seq=>1, section_seq=>2, page_title=>p1 );
myArr[] = array( page_id=>2, section_id=>9, parent_id=>0, level=>0, page_seq=>1, section_seq=>1, page_title=>p1 );
myArr[] = array( page_id=>3, section_id=>3, parent_id=>0, level=>0, page_seq=>2, section_seq=>1, page_title=>p2 );
myArr[] = array( page_id=>4, section_id=>4, parent_id=>0, level=>0, page_seq=>3, section_seq=>1, page_title=>p3 );
myArr[] = array( page_id=>5, section_id=>5, parent_id=>3, level=>1, page_seq=>3, section_seq=>1, page_title=>p2-3 );
myArr[] = array( page_id=>6, section_id=>6, parent_id=>3, level=>1, page_seq=>2, section_seq=>1, page_title=>p2-2 );
myArr[] = array( page_id=>7, section_id=>7, parent_id=>4, level=>1, page_seq=>1, section_seq=>1, page_title=>p3-1 );
myArr[] = array( page_id=>8, section_id=>8, parent_id=>7, level=>2, page_seq=>1, section_seq=>1, page_title=>p3-1-1 );
myArr[] = array( page_id=>9, section_id=>10, parent_id=>5, level=>2, page_seq=>1, section_seq=>1, page_title=>p2-1-1 );
myArr[] = array( page_id=>9, section_id=>11, parent_id=>5, level=>2, page_seq=>1, section_seq=>2, page_title=>p2-1-1 );
myArr[] = array( page_id=>10, section_id=>12, parent_id=>3, level=>1, page_seq=>1, section_seq=>1, page_title=>p2-1 );
我的问题是排序。
- section_seq 是页面内部分的序列。
- page_seq 是同一父级的级别内的页面序列。
我已经在这里找到了一些递归循环示例,但是 - 老实说 - 我无法根据我的需要调整它们。而且,我需要一个递归循环吗?
我的数组的键应该是什么:section_id,因为它在所有页面中都是唯一的?如何进行正确的排序?
需要注意的是:页面标题很遗憾不能用于排序目的 - 如上例所示 - )因为它是自由文本......
所以我需要的是:
- 读取级别为 0 且 page_seq = 1 的第一页 (1)
- 读取具有级别 1 的第一页 (2) - 如果存在 - 以页面 (1) 作为父页面且 page_seq = 1
- 读取具有级别 2 的第一页 (3) - 如果存在 - 以页面 (2) 作为父页面且 page_seq = 1
- ...只要不存在更深层次就继续
- 读取具有级别 2 的第二页 (4) - 如果存在 - 以页面 (2) 作为父级且 page_seq = 1
- ...只要不存在更深层次并且此级别上没有更多页面以页面 (2) 作为父级,就继续
- 读取具有级别 1 的第二页 (5) - 如果存在 - 页面 (1) 作为父级且 page_seq = 1
- ...只要不存在更深层次并且此级别上没有更多页面以第 (5) 页为父级,则继续
- 读取级别为 0 且 page_seq = 2 的第二页 (6)
- 等等。
任何强大的帮助和想法?
在此先感谢沃尔夫冈