Задача: удаление дублей из многомерного массива.
Зачем это может нам понадобиться? К примеру мне это пригодилось в поисковике. Когда выводится один и тот же ответ на запрос несколько раз.
Функция 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;
}
?>
Пример применения:
<?
$arResult = unique_multidim_array($arResult,'PRODUCT_ID');
//'PRODUCT_ID' <- Тут по какому критерию мы ищем повторы в многомерном массиве
//$details <- Тут многомерный массив, в котором мы ищем и в котором сразу записываем ответ на запрос
?>
Удаление дублей из многомерного массива