PHPで配列から重複した要素を削除する方法

PHPz
リリース: 2023-04-23 09:15:40
オリジナル
525 人が閲覧しました

PHP 開発では、特に配列を扱う場合、重複排除は基本的な操作です。配列内の重複要素はプログラムのパフォーマンスと結果の精度に影響を与えるため、配列の重複を排除する必要があります。この記事では、PHP を使用して配列から重複要素を削除する方法を紹介します。

最初の方法: array_unique() 関数を使用する

array_unique() 関数は、PHP での重複排除操作に最も一般的に使用される関数です。配列内の重複要素を削除し、新しいアレイ。以下は、array_unique() 関数を使用して重複を削除するコード例です:

$array = array(1, 2, 2, 3, 4, 4, 5);
$array_unique = array_unique($array);
print_r($array_unique);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)
ログイン後にコピー

array_unique() 関数を使用して重複を削除した後、次のことがわかります。重複している場合、配列内の重複した要素は削除されます。

2 番目の方法: ループ トラバーサルを使用して重複を削除する

もう 1 つの一般的な重複排除方法は、ループを使用して配列をトラバースし、in_array() 関数を使用して重複要素があるかどうかを判断することです。要素が重複している場合は、unset()関数を使用して重複要素を削除します。以下は、ループ トラバーサルを使用して重複を削除するサンプル コードです。

$array = array(1, 2, 2, 3, 4, 4, 5);
$new_array = array();

foreach ($array as $value) {
    if (!in_array($value, $new_array)) {
        $new_array[] = $value;
    }
}

print_r($new_array);
ログイン後にコピー

出力結果は、array_unique() 関数を使用して重複を削除した後の結果と同じです。

3 番目の方法: array_flip() 関数と array_keys() 関数を使用して重複を削除する

重複を削除する最後の方法は、array_flip() 関数を使用して次の値を使用することです。配列をキーとして、キーを値として、重複した値を重複排除できます。次に、array_keys() 関数を使用して重複排除されたキー名を取得し、最終結果は重複排除された配列になります。以下は、array_flip() 関数と array_keys() 関数を使用して重複を削除するサンプル コードです。

$array = array(1, 2, 2, 3, 4, 4, 5);

$array_flip = array_flip($array);
$array_keys = array_keys($array_flip);

print_r($array_keys);
ログイン後にコピー

出力結果も、array_unique() 関数を使用して重複を削除した後の結果と同じです。

上記の 3 つのメソッドは、配列内の重複要素を削除できます。array_unique() 関数は、シンプルで使いやすく、効率が良いため、最もよく使用されるメソッドです。大規模な配列の重複排除が必要なシナリオでは、ループを使用して重複排除を行うことでメモリを節約できます。 in_array() 関数の使用によって生じるパフォーマンスの低下は、array_flip() 関数と array_keys() 関数を使用して重複を削除することで回避できます。

実際の開発では、さまざまなシーンの要件に応じてさまざまな重複排除方法を選択することが非常に重要です。

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

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