我試圖創建一個具有列表中的每個項目的一個子表動態導航列表PHP如何通過多維數組循環
我有1個陣列包含12個父類值,是一個直接的一維數組。
我通過循環使用foreach循環,使無序列表
我遇到的問題是,我有子類的數組是一個多維數組,我需要爲每一個嵌套列表屬於父類別的子類別。
<?php
//mysql query to get the parent categories
$query = "SELECT `parent` FROM `categories` GROUP BY `parent`";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
$cat[] = $row['parent']; //define the parent categories as a variable
}?>
<div id="navigation">
<ul>
<li><a href="http://localhost/softwarereviews.com">Home</a></li>
<?php
//loop through the parent categories
foreach ($cat as $parent) {
//another query to get the child categories that belong to each parent category
$query = "SELECT * FROM `categories` WHERE `parent` = '$parent'";
$result = mysql_query($query)
or die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
//need 2 results so create a multi - dimensional array
$children[] = array($row['name'] => $row['cat_label']);
}?>
<li><?php echo $parent; ?></li>
<ul>
<?php foreach ($children as $key => $value) { ?>
<?php foreach ($value as $key => $value) { ?>
<li><a href="<?php echo $value;?>"><?php echo $key;?></a><li>
<?php }
}?>
</ul>
<?php }?>
</ul>
</div>
此刻會出現什麼情況是,每個類別的子列表不斷追加前面列出的成績,使每個子列表的結果越做越大。
您不應該在每秒中使用$ key => $ value!這是非常混亂,容易出錯!至少將它們命名爲$ key2 => $ value2 – zzarbi