それぞれのカテゴリとすべてのサブカテゴリを表示するループを作りたいと思います。この場合、 "for"ループではなく "foreach"をどのように使用しますか?
$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-巣-ためのループを作ったが、私は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
ああありがとう、私は今より良く見る。私は2番目のカテゴリのためにその不要な配列を削除しました。私はまだカテゴリー1、カテゴリー1、サブ1、そしてサブ1を取得します。非常に混乱します。 – eric01