php8.5
Home/ Manual/ array / functions/ array_unique

array_unique

PHP function Edit on GitHub ✎

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

Removes duplicate values from an array

Description

array_unique(array $array, int $flags = SORT_STRING): array

Takes an input array and returns a new array without duplicate values.

Note that keys are preserved. If multiple elements compare equal under the given flags, then the key and value of the first equal element will be retained.

Note

Two elements are considered equal if and only if (string) $elem1 === (string) $elem2, i.e. when the string representation is the same, the first element will be used.

Parameters

array

The input array.

flags

The optional second parameter flags may be used to modify the comparison behavior using these values:

Comparison type flags:

  • SORT_REGULAR - compare items normally (don't change types)

    Note

    When combining SORT_REGULAR with arrays mixing numeric and non-numeric strings, the sort-then-compare algorithm may not place equal elements adjacent, which can leave duplicates in the result. Use SORT_STRING to avoid this.

  • SORT_NUMERIC - compare items numerically
  • SORT_STRING - compare items as strings
  • SORT_LOCALE_STRING - compare items as strings, based on the current locale.

Return Values

Returns the filtered array.

Changelog

VersionDescription
7.2.0If flags is SORT_STRING, the returned array is built by adding the unique elements to a new array; formerly, it was a copy of array from which the non-unique elements were removed. Both hold the same elements under the same keys, but if the element with the largest integer key is among those removed, the index generated for an element appended to the returned array differs from the one array would have generated.

Examples

array_unique() example

php
<?php

$input = ["a" => "green", "red", "b" => "green", "blue", "red"];
$result = array_unique($input);
print_r($result);

?>

The above example will output:

output
Array
(
    [a] => green
    [0] => red
    [1] => blue
)

array_unique() and types

php
<?php

$input = [4, "4", "3", 4, 3, "3"];
$result = array_unique($input);
var_dump($result);

?>

The above example will output:

output
array(2) {
  [0]=>
  int(4)
  [2]=>
  string(1) "3"
}

Notes

Note

Note that array_unique() is not intended to work on multi dimensional arrays.

See Also

Source: reference/array/functions/array-unique.xml · from the official PHP manual (php/doc-en)