#php #css #arrays #styling #tag-cloud
#php #css #массивы #стиль #облако тегов
Вопрос:
Мне интересно, есть ли какой-либо другой подход, чтобы сделать что-то подобное:
$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. разве перетасовки недостаточно для рандомизации массива? это даст вам случайный порядок без повторений
Ответ №1:
Поскольку вы уже рандомизируете порядок классов с 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>";
}
Комментарии:
1. @Tom: Добро пожаловать в SO. Пожалуйста, примите ответ. Это отметит ваш вопрос как ответ и покажет, как работает этот сайт. Смотрите также: meta.stackexchange.com/q/5234/147909 — Спасибо!