我想知道是否有任何其他方法来做这样的事情:
$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.c class会被选中多次,而有些类根本不会被选中。
我希望使用tag1通过tag10,而不是选择相同的类两次,直到每10已采取。
有人知道我怎么才能做到这一点吗?
感谢所有的回复!
由于您已经使用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>";
}