# array_unique

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

array_unique — 移除数组中重复的值

### 说明

array_unique ( array `$array` [, int `$sort_flags` = SORT_STRING ] ) : array

array_unique() 接受 `array` 作为输入并返回没有重复值的新数组。

注意键名保留不变。array_unique() 先将值作为字符串排序，然后对每个值只保留第一个遇到的键名，接着忽略所有后面的键名。这并不意味着在未排序的 `array` 中同一个值的第一个出现的键名会被保留。

> Note: 当且仅当 (string) $elem1 === (string) $elem2 时两个单元被认为相同。 例如，字符串表达一样时，会使用首个元素。

### 参数

`array`

  输入的数组。

`sort_flags`

  第二个可选参数`sort_flags` 可用于修改排序行为：

  排序类型标记：

  - `SORT_REGULAR` - 按照通常方法比较（不修改类型）
  - `SORT_NUMERIC` - 按照数字形式比较
  - `SORT_STRING` - 按照字符串形式比较
  - `SORT_LOCALE_STRING` - 根据当前的本地化设置，按照字符串比较。

### 返回值

返回过滤后的数组。

### 更新日志

版本 | 说明
--- | ---
5.2.10 | 修改回 `sort_flags` 的默认值为 `SORT_STRING`。
5.2.9 | 增加可选选项`sort_flags`，默认值 `SORT_REGULAR`。 5.2.9 之前，此函数内部使用 `SORT_STRING` 排序。

### 范例

Example #1 array_unique() 例子

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

以上例程会输出：

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

Example #2 array_unique() 和类型

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

以上例程会输出：

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

### 参见

- array_count_values() - 统计数组中所有的值

### 注释

> Note: 注意， array_unique() 不能应用于多维数组。