開発プロセスでは配列を処理する場面がよくありますが、その中でも重複する値の処理の問題がより一般的です。たとえば、ショッピング カートでユーザーが同じ製品を追加する場合、繰り返しの追加を避けるために、その製品がすでに存在するかどうかを確認する必要があります。このようなシナリオでは、重複する値を削除し、データの正確性を確保する方法が必要です。一般的に使用されるサーバーサイドスクリプト言語として、PHP には配列を処理するためのさまざまな関数とメソッドが用意されていますが、この記事では、PHP を使用して配列から重複値を追い出す方法を紹介します。
1. array_unique() 関数を使用する
array_unique() は、配列内の重複する値を削除するために使用できる PHP の組み込み関数です。この関数の構文形式は次のとおりです。
array_unique($array, $sort_flags = SORT_STRING)
このうち、$array は重複値を削除する配列を表し、$sort_flags はオプションのソート フラグを表します。 $sort_flags が指定されていないか、SORT_STRING である場合、配列内の重複データはすべて削除され、配列の元のキーが保持されます。 $sort_flags が SORT_NUMERIC の場合、配列内の値は比較のために数値に変換され、元のキーは保持されません。以下は、この関数のサンプル コードです:
<?php $a = array(1,2,3,1,2,4,5); $b = array_unique($a); print_r($b); ?>
このコードの結果は次のとおりです:
Array ( [0] => 1 [1] => 2 [2] => 3 [5] => 4 [6] => 5 )
array_unique() 関数を使用すると、重複した値を簡単に削除できることがわかります。配列内で。ただし、この関数は配列の元のキー値を保持するため、配列のインデックスを並べ替える必要がある場合は、array_values() 関数を使用できます。
2. ループ トラバーサル メソッドを使用する
PHP が提供する組み込み関数を使用することに加えて、ループ トラバーサル メソッドを使用して、配列内の要素が既に存在するかどうかを確認することもできます。要素を 1 つずつ削除し、存在しない要素を新しい配列に追加します。このメソッドの主なアイデアは、foreach ループを使用して元の配列を走査し、重複する値が見つかった場合は直接スキップし、そうでない場合は新しい配列に追加することです。コードは次のとおりです。
<?php $a = array(1,2,3,1,2,4,5); $b = array(); foreach($a as $key => $value){ if(!in_array($value, $b)) { //判断新数组中是否已经存在该元素 $b[$key] = $value; //如果不存在,将其添加到新数组中 } } print_r($b); ?>
このコードの結果は、上記の array_unique() 関数のサンプル コードと同じです。
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
ループ トラバーサル メソッドを使用していることがわかります。配列内の重複した値を削除することもでき、元のキー値も保持されます。
3. array_flip() 関数を使用する
上記の 2 つの方法に加えて、array_flip() 関数を使用して配列内の重複した値を削除することもできます。この関数は、配列のキーと値を交換し、重複する値を自動的に削除します。最後に、配列のキーと値を元に戻すだけです。コードは次のとおりです。
<?php $a = array(1,2,3,1,2,4,5); $a = array_flip($a); //翻转数组的键和值 $a = array_flip($a); //再次翻转数组的键和值 print_r($a); ?>
このコードの結果も、前の 2 つのサンプル コードと同じです。
Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 [6] => 5 )
array_flip() 関数を使用して削除できることもわかります。配列内の値を重複して保持し、元のキー値を置き換えます。
概要
この記事では、PHP を使用して配列から重複値を追い出す 3 つの方法を紹介します。array_unique() 関数の使用、ループ トラバーサル メソッドの使用、array_flip() の使用です。関数。これらのメソッドは、配列内の重複する値を効果的に削除し、元のキー値を保持できます。実際の開発では、データ処理の目的を達成するために、必要に応じて配列内の繰り返し値を処理する適切な方法を選択できます。
以上がPHPで配列から重複した値を追い出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。