Верх страницы
Обложка к записи PHP: получение уникальных значений многомерного массива
Время для прочтения: 0 мин. 5 сек.

PHP: получение уникальных значений многомерного массива

Появилась необходимость удалить из многомерного PHP-массива все дубликаты. На ум сразу пришла функция array_unique, которая отлично работает с одномерными массивами. Но применить её «в лоб» не вышло.

После курения манов и гугления яндексом родилось такое решение:


<?php
$array = [];
$array = array_map( 'unserialize', array_unique( 
  array_map( 'serialize', $array )
));
?>

Есть небольшие проблемы при отработке данного варианта, но это мелочи.

Народ также посоветовал мне использовать функцию array_unique с аргументом SORT_REGULAR, но это работает в PHP с версии 5.2.9.

RTFM

ВКонтакте
Одноклассники
Linkedin
Telegram
WhatsApp

Комментарии
Подписаться
Уведомить о
guest
5 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
ictv
ictv
5 лет назад

Вот еще есть решение


&ly;?php
function unique_array_by_key($array, $key) {
$temp_array = array();
$i = 0;
$key_array = array();

foreach($array as $val) {
if (!in_array($val[$key], $key_array)) {
$key_array[$i] = $val[$key];
$temp_array[$i] = $val;
}
$i++;
}

return $temp_array;
}

В норм виде все здесь http://regid.biz/php-unikalizirovat-massiv-po-klyuchu/

mihdan
5 лет назад
Ответить на  ictv

Тоже имеет право на жизнь

Артём
Артём
2 лет назад

ictv, То что нужно было! Многомерный массив уникализирует в лёгкую.

Артём
Артём
2 лет назад
Ответить на  Кобзарёв Михаил

Да, стоит. Решение лучше, чем предложенное вами.