我花了相当多的时间用这个,但无法生成解决方案,所以我要求你的帮助:) 我有一个这种结构的多维PHP数组:将PHP多维数组置换成HTML嵌套列表
Array
(
[1] => Array
(
[title] => Dance Type
[id] => 2
[children] => Array
(
[0] => Tango
[1] => Salsa
[2] => Hip-Hop
)
)
[2] => Array
(
[title] => Age
[id] => 3
[children] => Array
(
[0] => Young
[1] => Teen
[2] => Senior
)
)
[3] => Array
(
[title] => Grade
[id] => 1
[children] => Array
(
[0] => Professional
[1] => Student
)
)
[4] => Array
(
[title] => Groups
[id] => 4
[children] => Array
(
[0] => Small Group
[1] => Duet
)
)
)
该阵列可以包含密钥的无限量,不一定4.
我需要的是,以产生具有以下结构的嵌套 “调度”(UL/LI):
<ul>
<li>Tango
<ul>
<li>Young
<ul>
<li>Professional
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
<li>Student
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
</ul>
</li>
<li>Teen
<ul>
<li>Professional
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
<li>Student
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
</ul>
</li>
<li>Senior
<ul>
<li>Professional
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
<li>Student
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>Salsa
<ul>
<li>Young
<ul>
<li>Professional
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
<li>Student
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
</ul>
</li>
<li>Teen
<ul>
<li>Professional
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
<li>Student
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
</ul>
</li>
<li>Senior
<ul>
<li>Professional
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
<li>Student
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>Hip-Hop
<ul>
<li>Young
<ul>
<li>Professional
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
<li>Student
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
</ul>
</li>
<li>Teen
<ul>
<li>Professional
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
<li>Student
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
</ul>
</li>
<li>Senior
<ul>
<li>Professional
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
<li>Student
<ul>
<li>Small Group</li>
<li>Duet</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
在此先感谢您的帮助!
编辑:从MySQL数据库直生成此数组(使用一个表): eventsRegistrationRoutinesCategories表:
| categoriesID [int(10)] | categoryTitle [text] | optionTitle [text] |
------------------------------------------------------------------------
| 2 | Dance Type | Tango |
------------------------------------------------------------------------
| 3 | Age | Young |
------------------------------------------------------------------------
| 1 | Grade | Professional |
------------------------------------------------------------------------
| 4 | Groups | Small Group |
------------------------------------------------------------------------
| 2 | Dance Type | Salsa |
------------------------------------------------------------------------
| 3 | Age | Teen |
------------------------------------------------------------------------
| 1 | Grade | Student |
------------------------------------------------------------------------
| 4 | Groups | Duet |
------------------------------------------------------------------------
| 2 | Dance Type | Salsa |
------------------------------------------------------------------------
| 3 | Age | Senior |
------------------------------------------------------------------------
| 2 | Dance Type | Hip-Hop |
------------------------------------------------------------------------
etc...
$schedule = array();
$sSQL="SELECT DISTINCT(categoriesID), categoryTitle FROM eventsRegistrationRoutinesCategories WHERE eventsID = '".$eventsID."' ORDER BY eventsRegistrationRoutinesCategoriesID";
$result = mysqli_query($linkMySQL, $sSQL) or sqlError($sSQL,mysqli_error($linkMySQL));
$count1 = 1;
while($row = mysqli_fetch_array($result)) {
$schedule[$count1]['title'] = $row['categoryTitle'];
$schedule[$count1]['id'] = $row['categoriesID'];
// Get all sub options for each
$sSQL2="SELECT * FROM eventsRegistrationRoutinesCategories WHERE categoriesID = '".$row["categoriesID"]."' GROUP BY categoriesOptionsID ORDER BY eventsRegistrationRoutinesCategoriesID";
$result2=mysqli_query($linkMySQL, $sSQL2) or sqlError($sSQL2,mysqli_error($linkMySQL));
while($row2 = mysqli_fetch_array($result2)) {
if(!empty($row2["optionTitle"])) {
$schedule[$count1]['children'][] = $row2["optionTitle"];
}
}
$count1++;
}
你能与我们分享您当前的非工作的代码,所以我们可以帮你吗? – Sugar 2014-08-29 05:47:47
你的数组和DOM并不在一起,你需要修改其中的一个,粘贴生成这个数组的代码。 – anwerj 2014-08-29 05:50:35
我已经添加了我的MySQL表结构以及生成该数组的函数。感谢你们。 – 2014-08-29 06:52:45