Вы здесь:

Удаление дублей из многомерного массива

Задача: удаление дублей из многомерного массива.

Зачем это может нам понадобиться? К примеру мне это пригодилось в поисковике. Когда выводится один и тот же ответ на запрос несколько раз.

Функция array_unique нам не подходит, так как она работает только с одномерным массивом.

Нам нужен аналог PHP функции array_unique для многомерного массива. После долгих поисков я нашел готовую функцию, которая выполняет вышеназванную задачу.

Код рабочий, проверен на практике.

Код

Сама функция выглядит так:


<?
function unique_multidim_array($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; 
} 
?>

А вот код для ее запуска (наше условие):


<?
$details = unique_multidim_array($details,'id');
//'id' <- Тут по какому критерию мы ищем повторы в многомерном массиве
//$details <- Тут многомерный массив, в котором мы ищем и в котором сразу записываем ответ на запрос
?>

'id' — Тут по какому критерию мы ищем повторы в многомерном массиве

$details — Тут многомерный массив, в котором мы ищем и в котором сразу записываем ответ на запрос

Заодно приведу вам пример многомерного массива:


Array
(
[0] => Array
(
[value] => 30
[description] => 30 секунд
)
[1] => Array
(
[value] => 45
[description] => 45 секунд
)
[2] => Array
(
[value] => 60
[description] => 1 минута
)
[3] => Array
(
[value] => 120
[description] => 2 минуты
)
)

Telegram
VK
Facebook
Twitter
LinkedIn
Материал написан
Станислав Волкер

Станислав Волкер