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

PHPz
リリース: 2023-04-25 09:48:29
オリジナル
627 人が閲覧しました

PHP はサーバーサイドのスクリプト言語として広く使用されており、配列を処理する必要がよくありますが、より一般的な問題の 1 つは、配列内の重複する値を削除する方法です。この記事では、この問題を解決するための一般的な方法をいくつか紹介します。

1. array_unique 関数を使用する

array_unique 関数は、配列内の重複する値を削除するための PHP の組み込み関数です。その使用方法は非常に簡単です。それは重複排除が必要なアレイです。サンプル コードは次のとおりです:

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

上記のコードの出力は次のようになります:

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

ご覧のとおり、元の配列内の重複した値が削除され、ユニークな価値。 array_unique 関数は、デフォルトでは元の配列のキーと値の関係を保持しないことに注意してください。そのため、キーと値の関係を保持する必要がある場合は、array_values と組み合わせて配列のインデックスを再作成できます。関数。

2. ループ重複排除の使用

もう 1 つの一般的な重複排除方法は、アレイをループすることです。具体的な方法としては、配列内の各要素とその後ろの要素を比較し、重複する要素が見つかった場合には、unset関数により後続の要素を削除します。以下はサンプル コードです。

$arr = array(1, 2, 3, 3, 4, 5, 5);
for($i = 0; $i < count($arr); $i++)
{
    for($j = $i + 1; $j < count($arr); $j++)
    {
        if($arr[$i] == $arr[$j])
        {
            unset($arr[$j]);
        }
    }
}
print_r($arr);
ログイン後にコピー

上記のコードの出力は、array_unique 関数を使用した場合と同じです。ループ重複排除を使用する方法は、複数のループの入れ子が必要であり、時間計算量が O(n²) であるため非効率であることに注意してください。そのため、大量のデータの処理には推奨されません。

3. array_flip 関数と array_values 関数を使用する

もう 1 つの一般的な重複排除方法は、配列の値をキー値として使用し、array_values を通じてキー値を再インデックスすることです。機能。具体的な方法は、まず array_flip 関数を使用してキーの値と配列内の値を交換し、配列内の値が一意であることを確認してから、キーのインデックスを再作成することです。 array_values 関数を通じて値を取得します。以下はサンプル コードです。

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

上記のコードの出力は、array_unique 関数を使用した場合と同じです。操作を完了するために 2 つの関数が使用されるため、array_unique 関数を使用するほど効率的ではない可能性があることに注意してください。

要約すると、上記は PHP で配列から重複値を削除する一般的な方法です。状況に応じて、さまざまな方法を選択すると、配列の処理効率が向上します。大量のデータを処理する場合は、パフォーマンスを向上させるためにより効率的な方法を選択する必要があることに注意してください。

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

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