PHPで配列を重複排除する方法

PHPz
リリース: 2023-04-23 09:33:55
オリジナル
6330 人が閲覧しました

PHP では、配列は非常に重要なデータ型であり、大量のデータを保存および処理するために使用できます。ただし、配列を使用する過程で、配列内に重複した値が発生する場合があり、この場合は配列の重複を排除する必要があります。以下では、いくつかの一般的な PHP 配列重複排除方法を紹介します。

1. PHP の array_unique() 関数を使用する

array_unique() 関数は、配列から重複した値を簡単に削除できる PHP 独自の重複排除関数です。この関数の使用方法は次のとおりです:

$array = array("a","b","c","d","a","b","e");
$new_array = array_unique($array);
print_r($new_array);
ログイン後にコピー

上記のコードは出力します:

Array ( [0] => a [1] => b [2] => c [3] => d [6] => e )
ログイン後にコピー

ご覧のとおり、重複した値「a」と「b」が元の配列は削除されました。

array_unique() 関数を使用して重複を削除する場合、配列内のキー名は保持されることに注意してください。配列のインデックスを再作成したい場合は、array_values() 関数を使用できます。例:

$array = array("a","b","c","d","a","b","e");
$new_array = array_values(array_unique($array));
print_r($new_array);
ログイン後にコピー

出力:

Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

この時点で、配列のインデックスは再作成されています。

2. ループを使用して重複を削除する

PHP では、配列をループして重複値を削除することもできます。このメソッドのコードは次のとおりです。

$array = array("a","b","c","d","a","b","e");
$new_array = array();
foreach($array as $key=>$value){
    if(!in_array($value,$new_array)){
        $new_array[] = $value;
    }
}
print_r($new_array);
ログイン後にコピー

配列内に特定の値が存在するかどうかを判定し、存在しない場合は新しい配列に追加することで、配列内の重複した値を削除できます。 。出力結果は次のとおりです。

Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

3. PHP の array_reduce() 関数を使用します。

array_reduce() 関数は、配列内の要素を削減できる配列削減関数です。 array_reduce() 関数を使用すると、重複した値を削除できます。

$array = array("a","b","c","d","a","b","e");
$new_array = array_reduce($array, function($carry, $item){
    if(!in_array($item, $carry)){
        $carry[] = $item;
    }
    return $carry;
}, array());
print_r($new_array);
ログイン後にコピー

上記のコードはPHP7の無名関数の機能を利用しており、配列内にある値が存在するかどうかを判定し、存在しない場合は新しい配列に追加することで複製を行っています。配列内の値は削除できます。出力結果は次のとおりです。

Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

4. PHP の array_count_values() 関数を使用します。

array_count_values() 関数は、配列内の各値の出現回数を返すことができます。コードは次のとおりです。

$array = array("a","b","c","d","a","b","e");
$count_array = array_count_values($array);
$new_array = array_keys($count_array);
print_r($new_array);
ログイン後にコピー

上記のコードは、配列内の各値の出現数をカウントし、array_keys() 関数を通じて新しい配列を取得します。出力結果は次のとおりです。

Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ここの新しい配列には重複する値はありません。

上記は、一般的な 4 つの PHP 配列重複排除方法です。実態に応じて最適な重複排除処理方法を選択することで、アレイ処理の効率を効果的に向上させることができます。

以上がPHPで配列を重複排除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート