0

我想知道是否有任何其他方法可以做这样的事情:

$classes = array("tag5", "tag2", "tag9", "tag4", "tag1", "tag6", "tag10", "tag8", "tag3", "tag7" );
shuffle($tags); 
foreach ($tags as $tag) { 
    $class = $classes[array_rand($classes)];
    echo "<li><a href='#' class='".$class."'> ".$tag."</a></li>"; 
}

问题是,当我使用这种方法时,同一个 a.class 会被多次选中,而有些类根本不会被选中。

我希望通过 tag10 使用 tag1,并且在每 10 个课程被选完之前不要选择两次相同的课程。

任何人都知道我怎么能达到这个?

感谢您的所有回复!

4

1 回答 1

2

由于您已经使用 随机化了类的顺序shuffle,因此没有理由再次随机化它们 - 只需按顺序循环

$classes = array("tag5", "tag2", "tag9", "tag4", "tag1", "tag6", "tag10", "tag8", "tag3", "tag7" );
shuffle($tags); 
foreach ($tags as $i => $tag) { 
    $class = $classes[$i % count($classes)];
    echo "<li><a href='#' class='".$class."'> ".$tag."</a></li>"; 
}
于 2011-10-22T15:36:16.193 回答