PHPで同一の配列を削除する方法

PHPz
リリース: 2023-04-19 09:41:43
オリジナル
413 人が閲覧しました

PHP では、配列の重複排除、つまり、繰り返される要素の削除が必要になる場合があります。このプロセスは単純に見えるかもしれませんが、状況によっては異なるアプローチが必要になる場合があります。次に、いくつかの一般的なアレイ重複排除方法とその適用シナリオについて説明します。

1. PHP 組み込み関数 array_unique() を使用する

PHP には、配列に対して重複排除操作を直接実行できる組み込み関数 array_unique() が用意されています。この関数を使用するための構文は次のとおりです。

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
ログイン後にコピー

このうち、$array は複製する配列、$sort_flags は要素の比較方法を指定するために使用されるオプションのパラメータであり、次のものを取ることができます。値:

  • SORT_REGULAR - 通常の方法で要素を比較します (要素のデータ型を変更せずに)
  • SORT_NUMERIC - 数値サイズに基づいて要素を比較します
  • SORT_STRING - 文字列に基づいて要素を比較します
  • SORT_LOCALE_STRING - 現在のロケールに従って要素を比較します
  • SORT_NATURAL - 自然な順序に従って要素を比較します

サンプル コードは次のとおりです

$arr = array(1, 2, 2, 3, 4, 4, 5);
$new_arr = array_unique($arr);
print_r($new_arr); // 输出:Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )
ログイン後にコピー

array_unique() を使用する利点 その理由は、シンプルで使いやすく、配列の重複排除操作が 1 行のコードで完了できるためです。欠点は一次元配列しか扱えないことであり、多次元配列を扱いたい場合は追加の処理が必要になります。

2. ループ条件判定を使用する

多次元配列を処理する場合は、ループ条件判定を使用して重複を削除できます。このメソッドの考え方は、配列を走査し、各要素を配列内の前の要素 (重複排除された要素を除く) と順番に比較し、重複が見つかった場合はスキップし、重複が見つかった場合はその要素を重複排除された配列に追加することです。サンプルコードは以下のとおりです。

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

$new_arr = array();
foreach ($arr as $value) {
    if (!in_array($value, $new_arr)) {
        $new_arr[] = $value;
    }
}
print_r($new_arr); // 输出:Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 2 ) [1] => Array ( [0] => 3 [1] => 4 [2] => 4 ) [2] => Array ( [0] => 5 [1] => 6 [2] => 7 ) )
ログイン後にコピー

ループの使用 条件判定の利点は、多次元配列を含むさまざまな形式の配列に適しており、データ量が増加しても良好なパフォーマンスを維持できることです。大きい。欠点は、より多くのコードを記述する必要があり、わずかな欠陥があると間違いを犯しやすいことです。

3. PHP 組み込み関数 array_reduce() を使用する

array_unique() に加えて、PHP にはリダクション演算の実行に使用できる組み込み関数 array_reduce() も用意されています。配列上で。配列の重複排除の場合、配列をキーと空の値として配列要素を含む連想配列に変換し、それを元の配列とマージできます。同じ要素が見つかった場合はスキップし、そうでない場合は後続のマージに追加します。配列。サンプル コードは次のとおりです。

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

$new_arr = array_reduce($arr, function($carry, $item) {
    if(!array_key_exists($item, $carry)) {
        $carry[$item] = null;
    }
    return $carry;
}, array());

print_r(array_keys($new_arr)); // 输出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
ログイン後にコピー

array_reduce() を使用する利点は、さまざまな形式の配列を柔軟に処理でき、コードが簡潔であることです。欠点は、大量のデータを含む配列ではパフォーマンスが低下する可能性があることです。

要約すると、PHP で配列の重複を排除する方法は数多くあり、特定の状況に応じて適切な方法を選択できます。 1 次元配列の場合は最初に array_unique() を使用することを推奨し、多次元配列の場合はループ条件判定または array_reduce() を使用することを推奨します。データの重複を排除することで、プログラムのパフォーマンスとデータ品質を向上させることができます。

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

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