использование массива для присвоения классов css тэгу - PullRequest
0 голосов
/ 22 октября 2011

Мне интересно, есть ли другой способ сделать что-то вроде этого:

$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 Ответ

2 голосов
/ 22 октября 2011

Поскольку вы уже рандомизируете порядок классов с помощью 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>"; 
}
...