PHP 言語は現在非常に人気のあるプログラミング言語であり、その強力な配列関数関数は、開発プロセス中にますます多くのプログラマーによって習得され、使用されています。ただし、若い PHP プログラマーは、PHP 言語では配列重複排除操作を実行するために配列関数を使用する必要がないことを知らないかもしれません。この記事では、PHP 言語での配列の重複排除のさまざまな方法を検討し、その実装原理を理解して習得します。
配列重複排除は、重複データを効果的に削除し、開発者のストレージ領域とコンピューティング リソースを節約できる基本的なデータ操作です。 PHP では通常、array_unique などの配列関数を使用して重複排除操作を実行しますが、実際には、PHP 言語に組み込まれているいくつかの言語機能を使用して同じ機能を実現でき、これらの方法は配列を使用するよりも効率的で柔軟です。重複を削除します。
方法 1: キーと値の交換原則を使用して配列の重複排除を実現する
PHP では、配列はキーと値のペアの形式であり、対応する値に直接アクセスできます。キー名 (Key) (Value) を使用します。キー名には任意の整数または文字列を使用できます。したがって、この機能を使用して、配列の値とキー名を交換することで重複排除の目的を達成できます。具体的な実装方法は次のとおりです。
<?php //需要去重的数组 $origin = array(1, 2, 3, 3, 4, 4, 5); //数组去重核心代码 foreach ($origin as $key => $val) { $tmp[$val] = 1; } $unique = array_keys($tmp); //输出结果 print_r($unique); ?>
このコードでは、まず foreach ループを使用して配列を走査し、対応する値をキー名として使用し、対応する値として 1 を使用します。キー名は一意であるため、異なるキー名には異なる値が割り当てられ、同じ値で元のキー名が上書きされ、重複排除の目的が達成されます。最後に、array_keys 関数を通じてすべてのキー名が抽出され、新しい配列が形成されます。
方法 2: array_flip 関数を使用してキーの名前と値を交換し、配列の重複排除を実現する
この重複排除方法は、上記の方法 1 と比較して、より簡潔です。 PHP の組み込み配列関数 array_flip を使用して、元の配列のキー名と値を交換し、重複排除の効果を実現できます。
<?php //需要去重的数组 $origin = array(1, 2, 3, 3, 4, 4, 5); //数组去重核心代码 $unique = array_keys(array_flip($origin)); //输出结果 print_r($unique); ?>
このコードでは、最初に array_flip 関数を使用して、元の配列のキー名と値の位置を交換します。これにより、繰り返される値が繰り返しのキー名になり、キー名は一意である必要があります。したがって、重複排除の効果が得られる。最後に、array_keys 関数を再度使用してすべてのキー名を抽出し、新しい重複排除された配列を生成します。
方法 3: array_diff 関数を使用して配列の差分操作を実行する
この重複排除方法は、最初の 2 つの方法とは異なり、配列の差分を計算することによって重複を排除します。具体的な実装方法は次のとおりです。
<?php //需要去重的数组 $origin = array(1, 2, 3, 3, 4, 4, 5); //数组去重核心代码 $unique = array_diff($origin, array_diff_assoc($origin, array_unique($origin))); //输出结果 print_r($unique); ?>
このコードでは、まず array_unique 関数を使用して重複排除された配列を取得します。次に、array_diff_assoc 関数を使用して、元の配列と重複排除された配列を比較し、キー名とキー値が異なる部分、つまり重複部分を取得します。最後に、array_diff 関数を再度使用して重複部分を削除し、最終的な重複排除された配列を取得します。
要約すると、PHP 言語に組み込まれている 3 つの配列重複排除メソッドについて説明しました。すべての方法には独自の利点と適用可能なシナリオがあり、これらの方法を柔軟に使いこなすことで、時間を節約し、リソースを節約し、コードの可読性と保守性を向上させることができます。したがって、プログラマーはコードの効率的な動作を確保するために、日々の開発における特定の状況に応じて異なる重複排除方法を選択する必要があります。
以上が配列関数を使用せずにPHPで重複を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。