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

Автор темы: lucky
ID темы: 2013
Информация:
Тема содержит 3 сообщения, была просмотрена 2875 раз.
Просмотр темы
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.040 секунд, используя 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.037 секунд, используя GeSHi 1.0.8.10

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

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

Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
Как вебмастеру сформулировали УТП для создания сайтов на PHP-Fusion?  →  Пожелания и предложения 1 / 2053 25.07.2020 03:46
SEO-оптимизация. дубли страниц в PHP-Fusion - где искать и как избавиться?  →  Ошибки, баги 0 / 559 19.06.2020 17:06
Как вывести все данные из таблицы, за исключением администраторов  →  Плагины 3 / 1207 24.02.2020 15:59
Не работает "выйти" Maxthon 5.2.3.3000  →  Ошибки, баги 1 / 344 22.02.2020 18:43
Как перейти с http на https  →  Вопросы новичков 30 / 23432 24.10.2019 18:45
Как правильно сделать ЧПУ и переиндексировать сайт?  →  Моды 4 / 5750 24.10.2019 17:38
Как перенести ресурс на другой домен  →  Установка и настройка системы 5 / 223 24.10.2019 14:01
Посоветуйте JS-слайдер чтобы фотки JPG сменялись как в GIF-анимации  →  Плагины 2 / 3284 20.10.2019 13:34
Перешел на HttpS - Как теперь удалить Http?!  →  Вопросы новичков 1 / 1489 18.06.2019 13:19
как правильно сделать phpmailer на utf-8?  →  Ошибки, баги 5 / 1526 09.06.2019 14:15
Топ 5 пользователей форума
Alex Alex (1,236)   Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)