2011-10-22 54 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