好的 不能完全参考类似的东西。我有两个数组,一个设置我的菜单导航项:
$nav_items = array('item1_link'=>'item1_displayname',
'item2_link'=>'item2_displayname',
'item3_link'=>'item3_displayname',
. . .
然后,我有我的第二个数组,它设置了许多可能的颜色:
$colors = array('red'=>'#f00',
'green'=>'#090',
'yellow'=>'fc0',
. . .
我们的想法是将这两者合并,结果将是:
<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 个菜单项,从第二个循环中分配给每个颜色项,该循环应该循环一次,然后再循环一次(以及第三,等等,如有必要),直到第 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
}
?>
这还不错,但只通过颜色数组一次,然后为剩余的菜单导航项重复最后一种颜色。那么,如何让颜色数组在其迭代完成后重新启动(并且 nav_item 迭代不是)?任何有关此事的帮助将不胜感激!
PS我也试过这个作为一个迭代器,但不能让它工作。毕竟这也许是最好的回应,但我仍然无法让颜色数组循环回来以完成 nav_items 数组循环。