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() ?

 PHP.SU

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


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

> Без описания
politaev
Отправлено: 03 Февраля, 2011 - 21:25:44
Post Id



Новичок


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


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




Всем привет!

Есть такая задача:

Есть массив с одинаковыми значениями. Перебираем его через форич . Только выводить повторяющиеся значения не надо... Как так сделать? Только сделать это нужно в самом фориче т.к. много условий вне форича...
 
 Top
annihilus
Отправлено: 03 Февраля, 2011 - 21:47:20
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Нояб. 2009  


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




PHP:
скопировать код в буфер обмена
  1. $c=array();
  2. foreach($a as $b)
  3. {
  4.     if(!in_array($b,$c))
  5.     {
  6.      $c[]=$b;
  7.      echo $b;
  8.     }
  9. }
 
 Top
DiosPA
Отправлено: 03 Февраля, 2011 - 21:50:51
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Янв. 2011  
Откуда: Россия


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




мне почему то в голову ничего не приходит как в самом фориче создать ещё 1 массив содержащий эти значения, при запуске он пустой и постепенно заполняется (при каждом цикле, а также при каждом цикле проверяем этот "новый массив" на содержимое новой переменной только проверку надо делать до того как данные добавляются в новый массив Улыбка
надеюсь понятно сказал Улыбка
 
 Top
politaev
Отправлено: 03 Февраля, 2011 - 21:54:31
Post Id



Новичок


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


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




annihilus пишет:
PHP:
скопировать код в буфер обмена
  1. $c=array();
  2. foreach($a as $b)
  3. {
  4.     if(!in_array($b,$c))
  5.     {
  6.      $c[]=$b;
  7.      echo $b;
  8.     }
  9. }



А ты можешь пояснить написанное плиз....
 
 Top
annihilus
Отправлено: 03 Февраля, 2011 - 21:58:02
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Нояб. 2009  


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




politaev пишет:
А ты можешь пояснить написанное плиз....

DiosPA выше пояснил)
 
 Top
politaev
Отправлено: 03 Февраля, 2011 - 21:58:45
Post Id



Новичок


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


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




всё гуд разобрался... Спасибо!!!

(Отредактировано автором: 03 Февраля, 2011 - 21:59:04)

 
 Top
altermann
Отправлено: 03 Февраля, 2011 - 21:59:27
Post Id



Частый гость


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


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




array_unique() в идеале, или применить array_flip (меняет местами ключи и значения, при этом повторяющиеся заменяют друг друга), а потом выбрать все полученные ключи (бывшие значения без повторов

(Отредактировано автором: 03 Февраля, 2011 - 22:01:43)



-----
Я прирожденный кузнец, я не могу не куя!
 
 Top
DiosPA
Отправлено: 03 Февраля, 2011 - 22:05:50
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Янв. 2011  
Откуда: Россия


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




Цитата:
DiosPA выше пояснил)

а я если честно логику придумал а что написано не понял Голливудская улыбка

У меня такое постоянно с начала логика потом решение задачи )
ахаха а было бы прикольно если бы наоборот О_о Не понял
 
 Top
politaev
Отправлено: 03 Февраля, 2011 - 22:10:15
Post Id



Новичок


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


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




всё наверное приходит с практикой.... решение простое ,а я не додумался... Однако
(Добавление)
всё получилось , но выводит ошибку
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. A PHP Error was encountered
  3. Severity: Warning
  4. Message: in_array() expects parameter 2 to be array, null given
  5. Filename: views/main_left_view_manufacturer.php
  6. Line Number: 15
  7.  
 
 Top
annihilus
Отправлено: 03 Февраля, 2011 - 22:20:44
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Нояб. 2009  


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




politaev пишет:
но выводит ошибку

Она говорит о том , что 2й параметр в функции in_array() должен быть массив , а вы передали ей null;
 
 Top
politaev
Отправлено: 03 Февраля, 2011 - 22:23:45
Post Id



Новичок


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


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




Блин уже раз 5 ложаю.....вместо "С" анг пишу русскую....всё ок)
 
 Top
dima4321
Отправлено: 04 Февраля, 2011 - 08:03:11
Post Id


Новичок


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


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




Или как варинат array_count_values()

и выводить ключи.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB