ホームページ  >  記事  >  バックエンド開発  >  PHPで重複した配列をフィルタリングする方法

PHPで重複した配列をフィルタリングする方法

PHPz
PHPzオリジナル
2023-04-20 13:55:17897ブラウズ

PHP では、配列を扱うときによく遭遇する問題の 1 つは、配列内の重複要素をフィルターで除外する方法です。この記事では、PHPで重複配列をフィルタリングする方法を詳しく紹介します。

1. array_unique 関数

PHP の組み込みの array_unique 関数は、配列内の重複要素をフィルターで除外できます。最初に出現した要素を保持し、残りの重複要素をすべて削除します。

この関数の構文は次のとおりです。

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

ここで、

  • array は、フィルタリングする必要がある配列です。
  • sort_flags は、並べ替え方法を指定するために使用されるオプションのパラメーターです。デフォルトでは、要素は文字列として比較され、SORT_NUMERIC または SORT_REGULAR を渡すことで数値または一般的な並べ替えを指定できます。

以下は例です:

$old_arr = array('apple', 'banana', 'pear', 'banana', 'orange');

$new_arr = array_unique($old_arr);

print_r($new_arr); // 输出结果为 Array ( [0] => apple [1] => banana [2] => pear [4] => orange )

元の配列には 2 つの 'banana' 要素があるため、array_unique フィルタリング後には 1 つの 'banana' 要素だけが保持されます。

2. 手動重複排除

array_unique 関数に加えて、手動重複排除を実現するためにキー名を繰り返すことができないという PHP の機能も使用できます。

元の配列を走査し、要素をキー名として新しい配列に保存すると、新しい配列内のキー名が自動的に重複排除され、値を必要に応じて設定できます。

以下はサンプル コードです:

$old_arr = array('apple', 'banana', 'pear', 'banana', 'orange');

$new_arr = array();

foreach ($old_arr as $value) {
    $new_arr[$value] = 0;
}

print_r(array_keys($new_arr)); // 输出结果为 Array ( [0] => apple [1] => banana [2] => pear [3] => orange )

この方法はより面倒ですが、入力と出力の順序の一貫性を保証できます。

3. array_flip 関数

PHP に組み込まれている array_flip 関数は、配列のキー名と値を交換できます。キー名は繰り返すことができないため、array_flip 関数を使用するとすぐに複製できます。

以下はサンプル コードです:

$old_arr = array('apple', 'banana', 'pear', 'banana', 'orange');

$new_arr = array_flip($old_arr);

print_r(array_keys($new_arr)); // 输出结果为 Array ( [0] => apple [1] => banana [2] => pear [3] => orange )

元の配列には 2 つの 'banana' 要素があるため、array_flip 関数の後には 1 つの 'banana' 要素だけが保持されます。

4. 概要

この記事の説明を通じて、PHP で配列から重複要素をすばやく削除する方法を学びました。

組み込みの array_unique 関数を使用するか、手動の重複排除を使用するか、array_flip 関数を使用して重複排除を実現できます。

特定のシナリオとニーズに応じて、配列内の重複要素を削除するのに最適な方法を選択できます。

以上がPHPで重複した配列をフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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