Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: foreach и array_rand

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dimaua2
Отправлено: 10 Августа, 2013 - 00:18:36
Post Id



Посетитель


Покинул форум
Сообщений всего: 434
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Есть форыч и там выводятся урлы на категории, как можно сделать вывод 3х случайных?
 
 Top
Саныч Модератор
Отправлено: 10 Августа, 2013 - 00:27:56
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




PHP:
скопировать код в буфер обмена
  1. $urls = []; // исходный массив
  2. $elsNum = count($url);
  3. $keys = (array) array_rand($urls, $elsNum > 3 ? 3 : $elsNum);
  4. foreach ($keys as $k) {
  5.     // ...
  6. }


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
dimaua2
Отправлено: 10 Августа, 2013 - 00:54:05
Post Id



Посетитель


Покинул форум
Сообщений всего: 434
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




сам додумался почти до такой же схемы, только без проверки)
все работает с одним минусом, если выводить без рандома то все гуд, когда с ним, он почему то берет иногда иды других категорий....и вот тут я понять не могу почему)
 
 Top
Okula
Отправлено: 10 Августа, 2013 - 01:05:22
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




dimaua2, наверно потому что это рандом и он выбирает из всех имеющихся в массиве Упёрся в стенку
 
 Top
dimaua2
Отправлено: 10 Августа, 2013 - 01:09:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 434
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Смотрите суть, я передаю в массив значения нужных мне категорий, без рандома выводит все правильно (те, что я так сказать отметил) с рандомом выводятся тупо все рубрики, что есть, а не те, что я передал в массив...

(Отредактировано автором: 10 Августа, 2013 - 01:10:51)

 
 Top
Okula
Отправлено: 10 Августа, 2013 - 01:15:59
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




dimaua2, значит у тебя неверный код. Ищи ошибку в логике. Тебе дали рабочий пример во втором посте. Используй его, если не можешь написать сам.

(Отредактировано автором: 10 Августа, 2013 - 01:16:42)

 
 Top
dimaua2
Отправлено: 10 Августа, 2013 - 01:20:19
Post Id



Посетитель


Покинул форум
Сообщений всего: 434
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Проверил тот тоже) вот)
PHP:
скопировать код в буфер обмена
  1. $cat_id=4; //ид родительской категории
  2. $termchildren=get_term_children($cat_id, 'category');
  3. //var_dump($termchildren);
  4. $elsNum=count($termchildren);
  5. $keys=array_rand($termchildren, $elsNum > 3 ? 3 : $elsNum);
  6. //var_dump($keys);
  7. foreach ($keys as $child){
  8. $term=get_term($child, 'category');
  9. $title=$term->name;
  10. $slug=$term->slug;
  11. echo "<a href=\"/category/theme/$slug\"><img src=\"/wp-content/themes/tolkochto/img/cat/$slug.jpg\" title=\"$title\" alt=\"$title\" width=\"180\" height=\"135\" /></a><br/>"."<a href=\"/category/theme/$slug\">$title</a>";
  12. }

(Отредактировано автором: 10 Августа, 2013 - 01:22:14)

 
 Top
Okula
Отправлено: 10 Августа, 2013 - 12:52:28
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Никто не знает что содержит в себе функция get_term_children(), а так же функция get_term().
Массив должен содержать в себе только те результаты из которых будет осуществляться выбор эллементов. Если массив будет содержать лишние эллементы то и ожидать корректной работы от скрипта не стоит.
Разберись с тем что записывается в массив $termchildren.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB