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 :: Вывод массива

 PHP.SU

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


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

> Описание: сравнить 2 массива и вывести на экран
amf1k
Отправлено: 19 Августа, 2014 - 18:46:43
Post Id


Гость


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


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

[+]


Есть 2 массива:
PHP:
скопировать код в буфер обмена
  1.  
  2. $users = array(1,2,3,4,5); //Все Пользователи
  3. $friends = array(2,3); //Мои Друзья
  4.  

Как через цикл foreach сравнить первый массив (пользователи) со вторым массивом (друзья) и вывести на экрен только тех пользователей, которых нет во втором массиве (друзья)?
Помогите пожалуйста!)
 
 Top
Мелкий Супермодератор
Отправлено: 19 Августа, 2014 - 18:48:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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






-----
PostgreSQL DBA
 
 Top
avtor.fox
Отправлено: 19 Августа, 2014 - 18:50:08
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




 
 Top
amf1k
Отправлено: 19 Августа, 2014 - 19:05:22
Post Id


Гость


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


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

[+]


а если мне будет нужно вывести всех пользователей с первого массива с меткой Добавить, тоесть сравнить, если в 2-м масииве есть пользователь, то мы метку не ставим! Например, сравнили массивы, вовод:
1 - Добавить
2 - Добавлен
3 - Добавлен
4 - Добавить
5 - Добавить

Тоесть (2,3) я уже добавил! как решить эту задачу?
 
 Top
amf1k
Отправлено: 19 Августа, 2014 - 21:57:25
Post Id


Гость


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


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

[+]


Вот полный код:
PHP:
скопировать код в буфер обмена
  1.  
  2. $users = array(
  3.    1=>array('id'=>1, 'login'=>'Лена'),
  4.    2=>array('id'=>2, 'login'=>'Света'),
  5.    3=>array('id'=>3, 'login'=>'Ксюша'),
  6.    4=>array('id'=>4, 'login'=>'Юля'),
  7.    5=>array('id'=>5, 'login'=>'Даша')
  8. );
  9. $friends = array(
  10.    1=>array('addressee'=>2),
  11.    2=>array('addressee'=>3)
  12. );
  13. foreach($users as $value) {
  14.    foreach($friends as $value2) {
  15.       if($value['id'] == $value2['addressee']) {
  16.          $key = 'Friend';
  17.       }
  18.       else {
  19.          $key = 'No Friend';
  20.       }
  21.       echo $value['login'].' - '. $key.'<br/>';
  22.    }
  23. }
  24.  

все ок,только цикл выводит инфу дважды(
 
 Top
Sail
Отправлено: 19 Августа, 2014 - 22:03:43
Post Id



Участник


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


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




amf1k пишет:
Вот полный код:
Спойлер (Отобразить)

все ок,только цикл выводит инфу дважды(

А если использовать функцию in_array() и foreach($users as $key => $value)?
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($users as $key => $value) {
  3.    if(in_array($key, $friends)) {
  4.          $str = 'Friend';
  5.    }  else {
  6.          $str = 'No Friend';
  7.    }
  8.    echo $value['login'].' - '. $str.'<br/>';
  9. }
  10.  
 
 Top
amf1k
Отправлено: 19 Августа, 2014 - 22:11:26
Post Id


Гость


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


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

[+]


Sail пишет:
amf1k пишет:
Вот полный код:
Спойлер (Отобразить)

все ок,только цикл выводит инфу дважды(

А если использовать функцию in_array() и foreach($users as $key => $value)?
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($users as $key => $value) {
  3.    if(in_array($key, $friends)) {
  4.          $str = 'Friend';
  5.    }  else {
  6.          $str = 'No Friend';
  7.    }
  8.    echo $value['login'].' - '. $str.'<br/>';
  9. }
  10.  


но на выходе получаю везде No Friend!
 
 Top
Sail
Отправлено: 20 Августа, 2014 - 06:25:01
Post Id



Участник


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


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




amf1k пишет:
на выходе получаю везде No Friend!

Не с тем сравниваем. Массив $friends чуток по-сложнее структуру имеет Улыбка
Попробуйте так:
PHP:
скопировать код в буфер обмена
  1. foreach($users as $value) {
  2.    $key = 'No Friend';
  3.    foreach($friends as $value2) {
  4.       if($value['id'] == $value2['addressee']) {
  5.          $key = 'Friend';
  6.          break;
  7.       }
  8.    }
  9.    echo $value['login'].' - '. $key.'<br/>';
  10. }
  11.  

А всё от того, что вопрос в первом сообщении существенно отличается от приведённого после полного кода... Однако

(Отредактировано автором: 20 Августа, 2014 - 08:06:38)

 
 Top
amf1k
Отправлено: 20 Августа, 2014 - 17:25:41
Post Id


Гость


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


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

[+]


Sail пишет:
amf1k пишет:
на выходе получаю везде No Friend!

Не с тем сравниваем. Массив $friends чуток по-сложнее структуру имеет :)
Попробуйте так:
PHP:
скопировать код в буфер обмена
  1. foreach($users as $value) {
  2.    $key = 'No Friend';
  3.    foreach($friends as $value2) {
  4.       if($value['id'] == $value2['addressee']) {
  5.          $key = 'Friend';
  6.          break;
  7.       }
  8.    }
  9.    echo $value['login'].' - '. $key.'<br/>';
  10. }
  11.  

А всё от того, что вопрос в первом сообщении существенно отличается от приведённого после полного кода... ::huh.gif::


Спасибо ОГРОМНОЕ)))
 
 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