【发布时间】:2012-04-08 18:49:04
【问题描述】:
我想制作一个循环来显示每个类别和所有子类别。我有这个数组:
$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-nest-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
【问题讨论】:
-
我缩进了原始数组,因此深度变化更加明显。您需要在代码中处理这些深度变化,否则它不会输出预期的数据。
-
哦,好的,非常感谢,我现在看得更清楚了。我删除了第二类不需要的数组。我仍然得到类别 1,然后是类别 1,然后是子 1,然后是子 1.. 非常混乱。