PHP では、配列は非常に重要なデータ型であり、配列内の同じ値を削除する必要があることがよくあります。このプロセスは重複排除と呼ばれ、重複の削除とも呼ばれます。実際の開発では、重複排除は多くの問題を解決するために必要なステップです。
PHP には、配列の重複排除に使用できるさまざまな組み込み関数が用意されています。この記事では、一般的に使用される 4 つの方法を紹介します。
方法 1: array_unique() 関数を使用する
array_unique() 関数は、PHP で最も単純で最もよく使用される関数の 1 つです。配列から重複した値を削除し、新しい配列を返すために使用できます。
次は簡単な例です:
$arr = array(1, 2, 3, 2, 4, 3, 5); $result = array_unique($arr); print_r($result);
このコードの出力は次のとおりです:
Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 [6] => 5 )
元の配列に重複した値 2 と 3 があることがわかります。が削除されました。ただし、array_unique() 関数は、1 次元配列内の重複した値を削除するためにのみ使用できることに注意してください。多次元配列から重複した値を削除する必要がある場合は、他の方法を使用する必要があります。
方法 2: array_count_values() 関数を使用する
array_count_values() 関数は、配列内の各値の出現数をカウントし、次の出現数を含む新しい配列を返すために使用されます。各値を対応するキー値として扱います。
次は例です:
$arr = array(1, 2, 3, 2, 4, 3, 5); $result = array_count_values($arr); print_r($result);
このコードの出力は次のとおりです:
Array ( [1] => 1 [2] => 2 [3] => 2 [4] => 1 [5] => 1 )
この新しい配列では、各キーは元の配列に現れた値を表します。そして、それに対応する値は、その値が元の配列に出現する回数を表します。
元の配列の一意の値のみを気にする場合は、array_keys() 関数を使用して新しい配列内のすべてのキーを取得し、元の数値を取得できます。 () 関数は重複した値を削除します。
方法 3: foreach ループを使用する
組み込み関数を使用したくない場合は、配列内の重複する値を削除する foreach ループを作成できます。
以下は例です:
$arr = array(1, 2, 3, 2, 4, 3, 5); $result = array(); foreach ($arr as $value) { if (!in_array($value, $result)) { $result[] = $value; } } print_r($result);
このコードの出力は、array_unique() 関数を使用した場合と同じです。
この例では、最初に空の配列 $result を定義し、次に foreach ループを使用して元の配列 $arr 内のすべての値を走査します。現在の値が $result 配列にない場合は、それを $result 配列に追加して、新しい一意の配列を作成します。
このループでは、in_array() 関数を使用して、現在の値が $result 配列内にあるかどうかを判断していることに注意してください。値が $result 配列に存在する場合、その値はすでに追加されているため、再度追加する必要はありません。
方法 4: array_flip() 関数と array_values() 関数を使用する
最後に、array_flip() 関数と array_values() 関数を使用した重複排除方法を紹介します。
array_flip() 関数は、配列内のキーと値を交換して新しい配列を作成できます。元の配列に重複した値が含まれている場合、このメソッドは重複した値を自動的に削除します。
次は例です:
$arr = array(1, 2, 3, 2, 4, 3, 5); $result = array_values(array_flip($arr)); print_r($result);
このコードの出力は前の例と同じです。
この例では、まず array_flip() 関数を使用して元の配列のキーと値を交換し、次に array_values() 関数を使用して新しい配列の値を並べ替えます。元の配列には重複した値が含まれているため、array_flip() 関数を使用すると、これらの重複した値が自動的に削除されます。
結論
配列の重複排除は PHP において間違いなく非常に重要な操作であり、データ処理中の繰り返し計算を回避し、プログラムの実行効率を向上させることができます。この記事では、array_unique() 関数、array_count_values() 関数、foreach ループ、array_flip() 関数、array_values() 関数など、いくつかの重複排除メソッドについて説明しました。それぞれに特徴があり、ニーズに合った方法を選択できます。
以上がPHP配列から同一の値を削除するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。