есть 2 массива $users - Пользователи и $friends - Друзья как через цикл foreach сравнить пользователей и друзей и вывести соответсвенную информацию, тоесть Все пользователи сайта: ID->1 Login->Лена (Добавить в друзья) ID->2 Login->Даша (Друг) ID->3 Login->Света (Друг) ID->4 Login->Ксюша (Добавить в друзья) ID->5 Login->Юля (Добавить в друзья) Код (Text): $users = array( 1=>array('id'=>1, 'login'=>'Лена'), 2=>array('id'=>2, 'login'=>'Даша'), 3=>array('id'=>3, 'login'=>'Света'), 4=>array('id'=>4, 'login'=>'Ксюша'), 5=>array('id'=>5, 'login'=>'Юля') ); $friends = array( 1=>array('addressee'=>2), 2=>array('addressee'=>3) ); foreach($users as $value) { foreach($friends as $value2) { if($value['id'] == $value2['addressee']) { $key = 'Друг'; } else { $key = 'Добавить в друзья'; } echo $value['login'].' - '. $key.'<br/>'; } }
А нельзя ли $friends упростить до array(2, 3) ? Тогда проверка "является другом" будет выглядеть как Код (Text): array_search($id, $friends) !== false иначе надо писать свою функцию isFriend($id), которая будет в цикле перебирать элементы $friends.
Код (PHP): $users = array( 1=>array('id'=>1, 'login'=>'Лена'), 2=>array('id'=>2, 'login'=>'Даша'), 3=>array('id'=>3, 'login'=>'Света'), 4=>array('id'=>4, 'login'=>'Ксюша'), 5=>array('id'=>5, 'login'=>'Юля') ); $friends = array( 1=>array('addressee'=>2), 2=>array('addressee'=>3) ); // prepare $friends_vals = array(); foreach($friends as $v) { $friends_vals[$v['addressee']]=1; } // foreach($users as $value) { if ( isset($friends_vals[$value['id']]) ) { $key = 'Друг'; } else { $key = 'Добавить в друзья'; } echo $value['login'].' - '. $key.'<br/>'; }