OK 似たようなものへの参照はまったく得られません。2 つの配列があり、1 つはメニュー ナビゲーション項目を設定します。
$nav_items = array('item1_link'=>'item1_displayname',
'item2_link'=>'item2_displayname',
'item3_link'=>'item3_displayname',
. . .
次に、可能な色の数を設定する 2 番目の配列があります。
$colors = array('red'=>'#f00',
'green'=>'#090',
'yellow'=>'fc0',
. . .
アイデアは、結果が次のようになるように、これら 2 つをマージすることです。
<a class="red" href="item1_link">item1_displayname</a>
<a class="green" href="item2_link">item2_displayname</a>
<a class="yellow" href="item3_link">item3_displayname</a>
問題は、10 個のメニュー項目があり、7 つの異なる色を決定したとします。アイデアは (これが私が立ち往生している場所です) メイン ループが 10 のメニュー項目を反復処理し、2 番目のループから色項目のそれぞれに割り当てます。必要に応じて 3 番目など)、グループ 1 のすべてのアイテムが使い果たされるまで。おそらく、私が最終的にやりたいことの例がより役立つでしょう:
<a class="red" href="item1_link">item1_displayname</a>
<a class="green" href="item2_link">item2_displayname</a>
<a class="yellow" href="item3_link">item3_displayname</a>
<a class="blue" href="item4_link">item4_displayname</a>
<a class="orange" href="item5_link">item5_displayname</a>
<a class="purple" href="item6_link">item6_displayname</a>
<a class="gray" href="item7_link">item7_displayname</a>
<a class="red" href="item8_link">item8_displayname</a> <!--Notice how colors restart here-->
<a class="green" href="item9_link">item9_displayname</a>
<a class="yellow" href="item10_link">item10_displayname</a>
したがって、PHPコードに関して、私が今までに得たのは次のとおりです。
<?php
reset($nav_items);
reset($colors);
while ((list($nav_link, $nav_name) = each($nav_items))) {
list($color_name) = each($colors);
?>
<li><a class="<?php echo $color_name ?>" href="<?php echo $nav_link ?>"><?php echo $nav_name ?></a></li>
<?php
}
?>
これは悪くありませんが、色の配列を 1 回だけ通過し、残りのメニュー ナビゲーション項目に対して最後の色を繰り返します。では、反復が終了したら (そして nav_item の反復は終了しません)、カラー配列を再起動するにはどうすればよいですか?? この問題に関するヘルプは大歓迎です!
PS私もこれをイテレータとして試しましたが、うまく動作しませんでした。結局のところ、それが最良の応答かもしれませんが、nav_items 配列サイクルを完了するために、colors 配列をループバックさせることができませんでした。