array_unique

Removes duplicate values from an array

&reftitle.description; `array` `array_unique` `array` `array` `int` `flags` `SORT_STRING`

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.

&reftitle.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)

  - `SORT_NUMERIC` - compare items numerically

  - `SORT_STRING` - compare items as strings

  - `SORT_LOCALE_STRING` - compare items as strings, based on the current locale.

&reftitle.returnvalues;

Returns the filtered array.

&reftitle.changelog;

&Version; | &Description;
7.2.0 | If `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.

&reftitle.examples;

### `array_unique` example

    <?php
    $input = array("a" => "green", "red", "b" => "green", "blue", "red");
    $result = array_unique($input);
    print_r($result);
    ?>

&example.outputs;

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

### `array_unique` and types

    <?php
    $input = array(4, "4", "3", 4, 3, "3");
    $result = array_unique($input);
    var_dump($result);
    ?>

&example.outputs;

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

&reftitle.notes;

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

&reftitle.seealso;

- `array_count_values`