Как выбрать уникальные из массива

262
17 октября 2017, 04:18

Запутался.. Как выбрать уникальные из массива, если у меня одинаковые 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 пользователя
Answer 1

Вот то, что Вы хотите - массив в котором ключ - имя, значение - емейл. В данном случае будет всегда сохранено последнее значение емейла.

$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);

Но неужели в той штуке, в которой Вы храните данные, нет возможности выбрать сразу то, что Вам нужно?

READ ALSO
Как лучше создать глобально доступный instance?

Как лучше создать глобально доступный instance?

Есть следующий класс работы с ВК (там несколько нужных API):

234
PHP Скрипт не запускается

PHP Скрипт не запускается

Есть код его нужно запустить по расписанию но как это сделать я не знаю, в БД и записано время старта акции - но она не стартует в чем может...

420
Получение ChatID и отправка его пользователю в Telegram-bot

Получение ChatID и отправка его пользователю в Telegram-bot

Мне нужно, чтобы после того, как пользователь начал чат с ботом, ему отправлялся его chatID

241
Почему shell_exec возвращает null?

Почему shell_exec возвращает null?

Есть Python скриптЧерез терминал все работает нормально

236