配列から重複した値を削除する

# array_unique

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

array_unique — 配列から重複した値を削除する

### 説明

function array_unique(array `$array`, int `$flags` = `SORT_STRING`): array

`array` を入力とし、値に重複のない新規配列を返します。

キーは保持されることに注意してください。 指定された `flags` において、 複数の要素が等しかった場合、はじめの要素のキーと値が保持されます。

> 注意: `(string) $elem1 === (string) $elem2` の場合のみ二つの要素は等しいとみなされます。 つまり、文字列表現が同じである場合は、最初の要素を使用します。

### パラメータ

`array`

  入力の配列。

`flags`

  オプションの 2 番目のパラメータ `flags` にこれらの値を使用して、比較の挙動を変更します。

  比較形式のフラグは次のとおりです。

  - `SORT_REGULAR` - 通常の比較 (型変換をしない) を行います
  - `SORT_NUMERIC` - 数値として比較します
  - `SORT_STRING` - 文字列として比較します
  - `SORT_LOCALE_STRING` - 現在のロケールにもとづいて文字列として比較します。

### 戻り値

処理済の配列を返します。

### 変更履歴

バージョン | 説明
--- | ---
7.2.0 | `flags` が `SORT_STRING` の場合、 新しい配列が生成され、ユニークな要素が追加されるようになりました。 これによって、異なった数値のインデックスが振られる可能性があります。 これより前のバージョンでは、 `array` がコピーされ、 (配列を後にパックせずに) ユニークでない値が削除されていました。

### 例

例1 array_unique() の例

    <?php

    $input = ["a" => "green", "red", "b" => "green", "blue", "red"];
    $result = array_unique($input);
    print_r($result);

    ?>

上の例の出力は以下となります。

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

例2 array_unique() と型

    <?php

    $input = [4, "4", "3", 4, 3, "3"];
    $result = array_unique($input);
    var_dump($result);

    ?>

上の例の出力は以下となります。

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

### 注意

> 注意: array_unique() は、 多次元配列での使用を想定したものではないことに注意しましょう。

### 参考

- array_count_values() - 配列内に存在する、異なる値の出現回数を数える

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open