(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
array_unique — Removes duplicate values from an 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.
arrayThe 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_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 numerically
SORT_STRING - compare items as strings
SORT_LOCALE_STRING - compare items as
strings, based on the current locale.
Returns the filtered array.
| 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.
|
Example #1 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
)
Example #2 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"
}
Note:
Note that array_unique() is not intended to work on multi dimensional arrays.