ホームページ >バックエンド開発 >PHPの問題 >PHP 配列内の重複要素を削除する方法について話しましょう

PHP 配列内の重複要素を削除する方法について話しましょう

PHPz
PHPzオリジナル
2023-04-12 13:53:55591ブラウズ

PHP は、Web 開発、動的 Web ページ プログラミングなどに一般的に使用されるサーバー側プログラミング言語です。 PHP プログラマがデータを操作しやすくするために、PHP では配列 Array をデータ型として提供しています。これは、キーと値のペアの順序付けされたコレクションであり、PHP で最も一般的に使用されるデータ構造の 1 つです。実際の開発では配列の重複要素が頻繁に発生するため、この問題を解決するには配列の重複排除の観点から始める必要があります。この記事では、PHP配列の重複要素を削除する方法を紹介します。

1. array_unique() 関数を使用して重複を削除します。

PHP には、配列から重複要素を削除し、新しい配列を返すために使用される組み込み関数 array_unique() が用意されています。重複した要素は含まれません。この関数の構文は次のとおりです。

array array_unique(array $array[, int $sort_flags = SORT_STRING])

このうち、$array は操作が必要な配列、$sort_flags は重複排除時のソート方法を指定するオプションのパラメータです。このパラメータが渡されない場合、デフォルトで文字列ソート方法が使用されます。数値サイズで並べ替える場合は、定数 SORT_NUMERIC を渡すことができます。以下にサンプルコードを示します。

$old_array = [1, 3, 5, 3, 1, 6, 5];
$new_array = array_unique($old_array);
var_dump($new_array);

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

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(3)
  [2]=>
  int(5)
  [5]=>
  int(6)
}

重複排除処理後、重複した要素が削除され、異なる要素が残っていることがわかります。 PHP の構文によれば、整数と文字列は 2 つの異なるデータ型であるため、新しい配列のキー名は連続していないことに注意してください。

2. ループを使用して重複を削除する

組み込み関数 array_unique() に加えて、ループを使用して重複関数を実現することもできます。主な考え方は、配列の各要素を反復処理することです。要素が新しい配列に既に存在する場合は追加しないでください。それ以外の場合は、新しい配列に要素を追加します。以下はサンプルコードです:

$old_array = [1, 3, 5, 3, 1, 6, 5];
$new_array = [];

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

var_dump($new_array);

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

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(3)
  [2]=>
  int(5)
  [3]=>
  int(6)
}

ループ処理後、新しい配列の要素は、組み込み関数を使用すると、重複した要素が削除され、異なる要素が保持されます。 in_array() 関数は、要素が配列内に既に存在するかどうかを判断するためにループ内で使用されることに注意してください。この関数の戻り値はブール値です。

3. array_flip() 関数を使用して配列の重複を排除する

array_unique() とループに加えて、array_flip() 関数を使用して配列の重複を排除することもできます。この関数は、配列内のキーと値の位置を交換し、新しい配列を返します。 PHP の配列のキー名は一意である必要があるため、この関数を使用して配列から重複した要素を削除できます。以下はサンプル コードです:

$old_array = [1, 3, 5, 3, 1, 6, 5];
$new_array = array_flip($old_array);

var_dump(array_keys($new_array));

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

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(3)
  [2]=>
  int(5)
  [3]=>
  int(6)
}

ご覧のとおり、array_flip() 関数を使用して重複を削除した後、異なる要素のみを含む新しい配列が作成されます。戻ってきた。ただし、元の配列の値が新しい配列のキー名として使用され、新しい配列の値には値 1 が自動的に割り当てられることに注意してください。

結論

この記事では、PHP 配列内の重複要素を削除するための 3 つの方法、組み込み関数 array_unique()、loop、array_flip() 関数を紹介します。その中で、組み込み関数 array_unique() は最も簡単な方法ですが、loop 関数と array_flip() 関数はより柔軟で、より特殊な状況や複雑な状況を処理するのに適しています。どの方法を使用する場合でも、重要な点は、配列の重複排除の重要性を無視することはできず、重複要素がないことを保証することによってのみ、配列をより適切に使用してさまざまな操作を完了できるということです。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。