array_unique
PHP Manual
PHP Manual»配列 関数»array_unique

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_REGULAR を使った場合、 ソートしてから比較するアルゴリズムでは 等しい要素が隣り合うとは限らないため、 結果に重複が残ることがあります。 これを避けるには SORT_STRING を使ってください。

  • SORT_NUMERIC - 数値として比較します

  • SORT_STRING - 文字列として比較します

  • SORT_LOCALE_STRING - 現在のロケールにもとづいて文字列として比較します。

戻り値

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

変更履歴

バージョン 説明
7.2.0 flags が SORT_STRING の場合、 返される配列は、ユニークな要素を新しい配列に追加して 構築されるようになりました。 これより前のバージョンでは、array をコピーして 重複した要素を削除したものでした。 どちらも同じ要素を同じキーで保持します。 ただし、array の中で整数のキーが最大だった要素が 重複として取り除かれた場合、返される配列に要素を追加したときに 生成されるインデックスは、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() は、 多次元配列での使用を想定したものではないことに注意しましょう。

参考

To Top