Как использовать функцию array_unique в PHP для работы с уникальными элементами массива

Метод "array_unique" в PHP позволяет удалить повторяющиеся элементы из массива для создания уникального списка значений.

Пример использования:


$array = array(1, 2, 2, 3, 3, 4, 5, 5);
$unique_array = array_unique($array);
print_r($unique_array);

В результате работы кода выше, на экран будет выведен следующий массив:


Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [5] => 4
    [6] => 5
)

Как видно из вывода, значения 2 и 3 были удалены из исходного массива, так как они повторяются.

Метод "array_unique" работает с любыми типами данных, в том числе с объектами. Если в массиве содержатся объекты, метод будет сравнивать объекты между собой по ссылке, а не по содержимому.


class TestClass
{
    public $value;
    public function __construct($value)
    {
        $this->value = $value;
    }
}
$array = array(new TestClass(1), new TestClass(2), new TestClass(1), new TestClass(3));
$unique_array = array_unique($array);
print_r($unique_array);

В результате работы кода выше, на экран будет выведен следующий массив:


Array
(
    [0] => TestClass Object
        (
            [value] => 1
        )
    [1] => TestClass Object
        (
            [value] => 2
        )
    [3] => TestClass Object
        (
            [value] => 3
        )
)

Как видно, из массива были удалены два элемента, которые содержали объект с значением 1, но не были уникальными по ссылке на этот объект.

Можно также использовать метод "array_unique" для удаления дубликатов из многомерного массива. В этом случае метод будет сравнивать каждый вложенный массив с другими вложенными массивами.


$array = array(
    array('id' => 1, 'name' => 'John'),
    array('id' => 2, 'name' => 'Mary'),
    array('id' => 1, 'name' => 'Peter'),
    array('id' => 3, 'name' => 'Julia'),
    array('id' => 2, 'name' => 'Jack'),
    array('id' => 4, 'name' => 'Ann'),
);
$unique_array = array_map("unserialize", array_unique(array_map("serialize", $array)));
print_r($unique_array);

В результате работы кода выше, на экран будет выведен следующий массив:


Array
(
    [0] => Array
        (
            [id] => 1
            [name] => John
        )
    [1] => Array
        (
            [id] => 2
            [name] => Mary
        )
    [2] => Array
        (
            [id] => 3
            [name] => Julia
        )
    [5] => Array
        (
            [id] => 4
            [name] => Ann
        )
)

Как видно, из исходного многомерного массива были удалены все дубликаты элементов, которые имели одинаковое значение ключа "id". Для этого массив был сериализован и преобразован в одномерный массив, затем была выполнена операция "array_unique", после чего массив был десериализован и преобразован обратно в многомерный массив.

Похожие вопросы на: "array unique php "

Replace SQL – простой и эффективный способ модификации таблиц в базах данных
Работа с постами в PHP
Sort Pandas - учимся сортировать данные с помощью библиотеки Pandas
Осмотр файловой системы в Python (os.walk)
Java анонимные классы: примеры и возможности
Ansible File - автоматизация управления файлами
Windows Make: руководство по созданию и настройке операционной системы Windows
Запуск скрипта PowerShell
Операционная система: функция getcwd
<h1>JavaScript Substring