Удаление дублей из многомерного массива
            Technology
        
        09.08.2023
        
            
            8
            
            
            
            4
            
            
            
            2
            
        
Автор
adminЗадача: удаление дублей из многомерного массива.
Зачем это может нам понадобиться? К примеру мне это пригодилось в поисковике. Когда выводится один и тот же ответ на запрос несколько раз.
Функция 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 минуты
        )
)