2011-10-22 55 views
0

我想知道是否有任何其他方式做这样的事情:使用数组分配CSS类tagcloud

$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得到回升多次,有些班级根本不会被选中。

我正在寻找使用tag1槽tag10,并没有选择相同的类两次,直到每10个已采取。

任何人都知道我可以如何实现这个?

感谢您的任何和所有答复!

+1

不洗牌不足以随机排列?它会给你一个没有重复的随机订单 – dm03514

+0

什么是'$ classes'? – hakre

回答

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>"; 
} 
+0

谢谢..工作像一个魅力;) – Tom

+0

@汤姆:欢迎来到SO。请接受答案。这将标记你的问题为答案,并且这个网站是如何工作的。另请参阅:http://meta.stackexchange.com/q/5234/147909 - 谢谢! – hakre

+0

Alrighty然后;)谢谢! – Tom