Удаление дублей из многомерного массива
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 минуты
)
)