php
Время для прочтения: 0 мин. 22 сек.

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

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

2 комментария

по хронологии
по рейтингу сначала новые по хронологии

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


&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/

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