За последние 24 часа нас посетили 30574 программиста и 1813 роботов. Сейчас ищут 845 программистов ...

Вывод массива

Тема в разделе "PHP для новичков", создана пользователем amf1k, 20 авг 2014.

  1. amf1k

    amf1k Активный пользователь

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

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    А нельзя ли $friends упростить до array(2, 3) ? Тогда проверка "является другом" будет выглядеть как
    Код (Text):
    1. array_search($id, $friends) !== false
    иначе надо писать свою функцию isFriend($id), которая будет в цикле перебирать элементы $friends.
     
  3. runcore

    runcore Старожил

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