Web アプリケーションを開発する場合、配列の重複排除が必要になることがよくあります。 PHP は、この状況を処理するための非常に便利な array_unique() 関数を提供します。 array_unique() 関数は、配列から重複した要素を削除し、新しい配列を返すことができます。
array_unique() 関数の基本構文は次のとおりです:
array_unique(array $array, int $sort_flags = SORT_STRING): array
その中で、$array パラメータは重複要素を削除する配列を指定します; $sort_flags はオプションのパラメータで、並べ替えルールでは、SORT_NUMERIC、SORT_STRING、または SORT_LOCALE_STRING を使用できます。これは、それぞれ数値による並べ替え、文字列による並べ替え、ローカライズされた文字列による並べ替えを意味します。 $sort_flags が指定されていない場合、関数はデフォルトで SORT_STRING ルールを使用します。
次に、配列の重複排除に array_unique() 関数を使用する方法を示す例を見てみましょう:
<?php //定义一个包含重复元素的数组 $fruits = array("apple", "banana", "orange", "apple", "pear", "banana"); //使用array_unique()函数去重 $unique_fruits = array_unique($fruits); //打印去重后的数组 print_r($unique_fruits); ?>
上記のコードは次の結果を出力します:
Array ( [0] => apple [1] => banana [2] => orange [4] => pear )
ご覧のとおり、$unique_fruits 配列には 4 つの要素だけが残っており、重複した「apple」と「banana」が削除されています。
array_unique() 関数は配列のキー値のインデックスを再作成することに注意してください。これは、重複要素を削除した後、$unique_fruits 配列内のキーの番号が 0 から再割り当てされることを意味します。
元の配列に重複要素の最後のコピーを保持したい場合は、配列を逆の順序で走査し、unset() 関数を使用して重複要素の以前のコピーを削除します。具体的なコードは次のとおりです:
<?php $names = array("Tom", "Jack", "Mary", "Tom", "John", "Mary"); $unique_names = array(); for($i = count($names) - 1; $i >= 0; $i--){ if(!in_array($names[$i], $unique_names)){ array_unshift($unique_names, $names[$i]); } else{ unset($names[$i]); } } print_r($names); //输出数组中仅包含重复元素的最后一个副本 print_r($unique_names); //输出去重后的数组 ?>
上記のコードは次の 2 行を出力します:
Array ( [2] => Mary [4] => John ) Array ( [0] => Tom [1] => Jack [2] => Mary [4] => John )
このようにして、$unique_names 配列には重複排除された配列と $names 配列のみが格納されます。重複した要素の最後のコピーを保持します。
array_unique() 関数は、PHP で最も実用的な関数の 1 つで、配列から重複要素を簡単に削除できるため、配列の処理タスクが容易になります。
以上がPHP array_unique() 関数を使用して重複した配列を削除するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。