ホームページ  >  記事  >  バックエンド開発  >  PHP array_unique() 関数を使用して重複した配列を削除する

PHP array_unique() 関数を使用して重複した配列を削除する

WBOY
WBOYオリジナル
2023-06-27 10:40:391359ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。