我想做一個循環來顯示每個類別和所有子類別。我有這樣的數組:在這種情況下,我將如何使用「foreach」而不是「for」循環?
$Allcategories = array(
array(
array("Category 1", 'category1'),
array("Sub 1", 'sub1'),
array("Sub 2", 'sub2'),
array("Sub 3", 'sub3')
),
array(
array("Category 2", 'category2'),
array("Sub 1", 'sub1'),
array("Sub 2", 'sub2'),
array("Sub 3", 'sub3')
)
);
我已經取得了3巢for循環的作品,但我想用foreach
簡化它。 這裏是我的循環:for
foreach ($Allcategories as $val_1)
{
echo "<a href='index.php?category=", $val_1[0][1], "'>", $val_1[0][0], "</a>";
foreach ($val_1 as $val_2)
{
foreach ($val_2 as $val_3)
{
printf('<li><a href="index.php?category=%1$s">%1$s</a><br />', $val_3);
}
}
}
問題是我得到這樣的結果:
Category 1
-Category 1
-category1
-Sub 1
-sub1
-Sub 2
-sub2
我縮進了原始數組,以便更清楚地看到深度的變化。您需要處理代碼中的這些深度更改,否則它將不會輸出預期的數據。 – hakre 2012-03-24 14:34:12
哦,好的,非常感謝,現在我明白了。我刪除了第二類不需要的數組。我仍然得到1類,然後1類,然後是1號,然後sub1 ..非常混亂。 – eric01 2012-03-24 14:45:49