PHP

array_unique для многомерных массивов

$unique = array_unique($array);

Функция array_unique возвращает массив без повторяющихся значений, она работает и с многомерными массивами. Очисть массивы от дублей можно следующими способами:

Способ №1:

$array = array_unique($array, SORT_REGULAR);
PHP

Способ №2:

$array = array_map('unserialize', array_unique(array_map('serialize', $array)));
PHP

Второй способ чувствителен к типу данных, т.е. 1, и '1', будут считаться разными.

Удаление дубликатов по одному ключу

function array_unique_key($array, $key) { 
    $tmp = $key_array = array(); 
    $i = 0; 

    foreach($array as $val) { 
        if (!in_array($val[$key], $key_array)) { 
            $key_array[$i] = $val[$key]; 
            $tmp[$i] = $val; 
        } 
        $i++; 
    } 
    return $tmp; 
}
PHP

Например, в массиве нужно удалить дубликаты с одинаковым id, другие элементы массива не важны.

$test = array( 
    array(
        'id' => 1,
        'name' => 'Диски Sparco',
        'price' => 5000,
    ),
    array(
        'id' => 1,
        'name' => 'Диски Sparco',
        'price' => 6000,
    ),     
    array(
        'id' => 2,
        'name' => 'Автокресло',
        'price' => 3000,
    ), 

);

$test = array_unique_key($test, 'id'); 
print_r($test);
PHP

Результат:

Array(
    [0] => Array(
        [id] => 1
        [name] => Диски Sparco
        [price] => 5000
    )
    [2] => Array(
        [id] => 2
        [name] => Автокресло
        [price] => 3000
    )
)
28 июня 2019

Другие публикации

File_put_contents сохраняет текст в файл в кодировке ANSI, чтобы изменить ее на UTF-8 нужно к началу текста приписать...
Сборник регулярных выражений с примерами на PHP для проверки данных из полей форм.
Задача: появилась необходимость сделать якорное меню у ранее опубликованных статей, статей много, вручную дополнять их...
Если нужно запретить выполнение скриптов php в директории, например в uploads, нужно поместить туда файл .htaccess со...