Забыли пароль?
Запросите новый здесь.

Автор темы: lucky
ID темы: 2013
Информация:
Тема содержит 3 сообщения, была просмотрена 3150 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » PHP
 Распечатать тему
Как работает функция array_rand() ?
lucky
Здравствуйте!

Хочу уточнить как работает функция array_rand(). Вот пример. Для вывода ключей в случайном порядке использую array_rand():

Загрузить источник  GeSHi: PHP
  1. $tags_key = array_rand($tags, 5);
  2.  
  3. $i = 0;
  4. foreach($tags_key as $key)
  5. {
  6. $i++;
  7. $link[] = '<a href="/?option=search&s_text=' . trim($tags[$key]) . '" class="link_' . $i . '">' . trim($tags[$key]) . '</a>';
  8. }
  9.  
  10. shuffle($link);
  11.  
  12. foreach($link as $tag)
  13. {
  14. echo $tag;
  15. }
Добавлено за 0.030 секунд, используя GeSHi 1.0.8.10


Нужно 5 ключей из массива - $tags_key = array_rand($tags, 5); . Что мне не нравится.. Сначала не заметил, всё вроде хорошо и как надо работает, НО после нескольких перезагрузок страницы увидел, что ключей выводится то 5 то 4. Поставил другое число - 4. Теперь чередуется то 4 то 3, т.е. периодически на один ключ показывает меньше чем задано.

Это особенность array_rand() или я что-то в коде не так написал? Всего элементов в массиве $tags_key - 17, это простые ключевые слова и словосочетания.
 
spiker
Скорее всего есть пустые значения в массиве $tags

Смотри массив $link функц. print_r();
Скачать исходники  Код
print_r($link);




ЗЫ
А для чего массив $link?
Можно же "перемешать" shuffle($tags_key);
А ссылки выводить echo '<a href="/?option....
x1 x1 x1 x1
 
lucky
spiker, Спасибо, где Вы раньше были), да это так, пустая строка попала.

Объединено 05.01.2014 14:33:
ЗЫ
А для чего массив $link?
Можно же "перемешать" shuffle($tags_key);
А ссылки выводить echo '<a href="/?option....


И в правду зачем лишний цикл ...,

переделал:

Загрузить источник  GeSHi: PHP
  1. $tags_key = array_rand($tags, 5);
  2. shuffle($tags_key);
  3. foreach($tags_key as $key)
  4. {
  5. echo '<a href="/?option=search&s_text=' . $tags[$key] . '">' . $tags[$key] . '</a>';
  6. }
Добавлено за 0.017 секунд, используя GeSHi 1.0.8.10

Изменил(а) lucky, 05.01.2014 14:36
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
в PHP 7.4 нельзя вставлять пустое значение в `id` как раньше  →  Пожелания и предложения 4 / 1085 19.12.2023 03:32
нужны ли на сайте "Закладки" и "История посещений", как в браузере?  →  Пожелания и предложения 4 / 847 11.08.2023 15:56
Не работает colorbox  →  Ошибки, баги 7 / 1880 01.06.2022 18:03
Не работает страница профиля юзера  →  Ошибки, баги 0 / 764 09.05.2022 17:34
Как сделать микроразметку на сайте?  →  PHP 1 / 3380 22.07.2021 06:39
Как вебмастеру сформулировали УТП для создания сайтов на PHP-Fusion?  →  Пожелания и предложения 1 / 7314 25.07.2020 03:46
SEO-оптимизация. дубли страниц в PHP-Fusion - где искать и как избавиться?  →  Ошибки, баги 0 / 5129 19.06.2020 17:06
Как вывести все данные из таблицы, за исключением администраторов  →  Плагины 3 / 5338 24.02.2020 15:59
Не работает "выйти" Maxthon 5.2.3.3000  →  Ошибки, баги 1 / 1565 22.02.2020 18:43
Как перейти с http на https  →  Вопросы новичков 30 / 31879 24.10.2019 18:45
Топ 5 пользователей форума
Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)   SchreiBear SchreiBear (625)