ホームページ > バックエンド開発 > PHPの問題 > PHPで配列の重複排除を実装する方法

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

PHPz
リリース: 2023-03-29 11:45:49
オリジナル
1504 人が閲覧しました

Web 開発では、配列の重複排除は一般的な操作です。 PHP では、配列の重複排除を実現するための複数のメソッドが提供されています。この記事では、最も一般的に使用される 3 つの方法を紹介します。

方法 1: array_unique() 関数を使用する

array_unique() 関数は、配列から重複要素を削除し、重複を排除した新しい配列を返すことができます。この関数の使用は非常に簡単で、重複排除する必要がある配列をパラメータとして渡すだけです。この関数のサンプル コードを次に示します。

<?php
$arr = array(1, 2, 2, 3, 4, 4, 5, 5);
$new_arr = array_unique($arr);
print_r($new_arr);
?>
ログイン後にコピー

出力結果:

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

このメソッドは非常に単純ですが、元の配列のキー名を保持できません。元の配列のキー名を保持する必要がある場合は、以下で説明する方法を使用できます。

方法 2: ループ トラバーサルを使用する

PHP の for ループまたは foreach ループを使用すると、配列全体を走査し、判断によって重複要素を削除できます。以下は、foreach ループを使用して配列の重複排除を実装するコード例です。

<?php
$arr = array(1, 2, 2, 3, 4, 4, 5, 5);
$new_arr = array();
foreach ($arr as $value) {
    if (!in_array($value, $new_arr)) {
        $new_arr[] = $value;
    }
}
print_r($new_arr);
?>
ログイン後にコピー

出力結果:

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

このメソッドは元の配列のキー名を保持できますが、ループが必要です。配列を走査するため、効率は比較的低くなります。

方法 3: array_flip() 関数と array_keys() 関数を使用する

array_flip() 関数は、配列のキー名とキー値を反転できます。この関数を使用すると、元の配列の値をキー名として使用し、キー名を値として使用して新しい配列を生成できます。次に、array_keys() 関数を使用して新しい配列のキー名を取得し、重複排除された配列を取得します。以下はサンプル コードです:

<?php
$arr = array(1, 2, 2, 3, 4, 4, 5, 5);
$tmp_arr = array_flip($arr);
$new_arr = array_keys($tmp_arr);
print_r($new_arr);
?>
ログイン後にコピー

出力結果:

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

このメソッドは元の配列のキー名を保持でき、より効率的ですが、2 つの関数を使用する必要があります。のほうが面倒です。

まとめ

実際の開発では、状況に応じて配列の重複排除を実装する方法を選択してください。元の配列のキー名を保持する必要がない場合は、最も単純な array_unique() 関数を使用できます。元の配列のキー名を保持する必要がある場合は、ループ トラバーサルまたは array_flip() と array_keys を使用する必要があります。 () 機能。

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

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