Запутался.. Как выбрать уникальные из массива, если у меня одинаковые displayname, но разные email адреса. Суть в том, что если попадается два с одинаковыми displayname, то надо выбрать тот у которого в email есть yandex.ru А если НЕ попадаются одинаковые displayname (одинаковые entries), то вообще ничего не делать, оставить всё как есть и неважно, что там есть в email.
$entries=array();
$entries[0]["displayname"][0]='Alex'; $entries[0]["email"][0]='123@mail.ru'; //первый массив (меня не надо отображть): Имя пользователя, email пользователя
$entries[1]["displayname"][0]='Alex'; $entries[1]["email"][0]='256@yandex.ru'; //второй массив (меня надо оставить): Имя пользователя, email пользователя
$entries[2]["displayname"][0]='Anna'; $entries[2]["email"][0]='456456@mail.ru'; //третй массив (меня не надо отображть): Имя пользователя, email пользователя
$entries[3]["displayname"][0]='Anna'; $entries[3]["email"][0]='778888@yandex.ru'; //четвертый массив (меня надо оставить): Имя пользователя, email пользователя
//.....................
$entries[4]["displayname"][0]='Serg'; $entries[2]["email"][0]='3453549990@bk.ru'; //третй массив (у меня нет двойника, меня надо оставить): Имя пользователя, email пользователя
Вот то, что Вы хотите - массив в котором ключ - имя, значение - емейл. В данном случае будет всегда сохранено последнее значение емейла.
$result = [];
foreach($entries as $elem) {
if(isset($result[$elem['displayname'][0]]) &&
strpos($elem['email'][0],'yandex.ru') !== false
) {
$result[$elem['displayname'][0]] = $elem['email'][0];
} else {
$result[$elem['displayname'][0]] = $elem['email'][0];
}
}
var_dump($result);
Но неужели в той штуке, в которой Вы храните данные, нет возможности выбрать сразу то, что Вам нужно?
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники