(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
array_unique — 配列から重複した値を削除する
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() は、 多次元配列での使用を想定したものではないことに注意しましょう。