# array_unique

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

array_unique — Removes duplicate values from an array

### Description

array_unique ( array `$array` [, int `$sort_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 `sort_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.

`sort_flags`

  The optional second parameter `sort_flags` may be used to modify the sorting behavior using these values:

  Sorting type flags:

  - `SORT_REGULAR` - compare items normally (don't change types)
  - `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

Version | Description
--- | ---
7.2.0 | If `sort_flags` is `SORT_STRING`, formerly `array` has been copied and non-unique elements have been removed (without packing the array afterwards), but now a new array is built by adding the unique elements. This can result in different numeric indexes.
5.2.10 | Changed the default value of `sort_flags` back to `SORT_STRING`.
5.2.9 | Added the optional `sort_flags` defaulting to `SORT_REGULAR`. Prior to 5.2.9, this function used to sort the array with `SORT_STRING` internally.

### Examples

Example #1 array_unique() example

`<?php
$input = array("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 = array(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"
    }

### See Also

- array_count_values() - Counts all the values of an array

### Notes

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