array_unique
(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
Removes duplicate values from an array
Description
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.
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
arrayThe input array.
flagsThe optional second parameter
flagsmay be used to modify the comparison behavior using these values:Comparison type flags:
SORT_REGULAR- compare items normally (don't change types)NoteWhen combining
SORT_REGULARwith 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. UseSORT_STRINGto avoid this.SORT_NUMERIC- compare items numericallySORT_STRING- compare items as stringsSORT_LOCALE_STRING- compare items as strings, based on the current locale.
Return Values
Returns the filtered array.
Changelog
| Version | Description |
|---|---|
| 7.2.0 | If 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
$input = ["a" => "green", "red", "b" => "green", "blue", "red"];
$result = array_unique($input);
print_r($result);
?>The above example will output:
Array
(
[a] => green
[0] => red
[1] => blue
)array_unique() and types
<?php
$input = [4, "4", "3", 4, 3, "3"];
$result = array_unique($input);
var_dump($result);
?>The above example will output:
array(2) {
[0]=>
int(4)
[2]=>
string(1) "3"
}Notes
Note that array_unique() is not intended to work on multi dimensional arrays.