PHP 開発では、配列内に重複要素があるかどうかを判断することが一般的な要件です。この記事では、PHP を使用して 2 つの配列でどの要素が重複しているかを判断する方法を紹介します。
まず、2 つの配列の構造を理解する必要があります。 PHP の配列は、1 つ以上のキーと値のペアで構成される順序付けされた複合データ型です。キーと値の関係には、数値や文字列など、任意のタイプの変数を使用できます。
たとえば、ここに 2 つの単純な配列があります:
$array1 = array('apple', 'banana', 'orange', 'grape'); $array2 = array('banana', 'watermelon', 'grape', 'melon');
次に、これら 2 つの配列を個別に反復処理し、それらの要素を新しい配列に格納する必要があります。これは、PHP の array_intersect
関数を使用して実現できます。
$common_elements = array_intersect($array1, $array2);
array_intersect
関数は、2 つの配列の共通部分 (両方の配列に存在する要素) を返します。この例では、$common_elements 配列には 2 つの要素「banana」と「grape」が含まれます。
これで、両方の配列に重複した要素が得られました。ただし、元の配列内のそれらの位置を知る必要がある場合もあります。
この問題を解決するには、PHP の array_unique
関数を使用して配列内の一意の要素を抽出し、array_diff
関数を使用してこれらの一意の要素がどこにあるかを確認します。配列内に存在しない元の要素内にあります。これらの要素が私たちが望む結果です。
$unique_elements = array_unique(array_merge($array1, $array2)); $duplicate_elements = array_diff(array_merge($array1, $array2), $unique_elements);
このコードでは、最初に 2 つの配列をマージし、array_unique
関数を使用して一意の要素をフィルターで除外します。次に、array_diff
関数を使用して、元の配列と一意の要素の配列 (つまり、繰り返される要素の配列) の違いを見つけます。
最後に、これらの配列を出力する必要があります。次のコードを使用できます:
echo "Array1: "; print_r($array1); echo "Array2: "; print_r($array2); echo "Common Elements: "; print_r($common_elements); echo "Duplicate Elements: "; print_r($duplicate_elements);
完全な PHP コードは次のとおりです:
<?php $array1 = array('apple', 'banana', 'orange', 'grape'); $array2 = array('banana', 'watermelon', 'grape', 'melon'); $common_elements = array_intersect($array1, $array2); $unique_elements = array_unique(array_merge($array1, $array2)); $duplicate_elements = array_diff(array_merge($array1, $array2), $unique_elements); echo "Array1: "; print_r($array1); echo "Array2: "; print_r($array2); echo "Common Elements: "; print_r($common_elements); echo "Duplicate Elements: "; print_r($duplicate_elements); ?>
このコードの出力
Array1: Array ( [0] => apple [1] => banana [2] => orange [3] => grape ) Array2: Array ( [0] => banana [1] => watermelon [2] => grape [3] => melon ) Common Elements: Array ( [1] => banana [3] => grape ) Duplicate Elements: Array ( [0] => banana [1] => grape )
出力からわかるように、2 つの配列で重複する要素が正常に見つかりました。
要約すると、この記事では、PHP を使用して 2 つの配列でどの要素が繰り返されているかを判断する方法を紹介します。この関数は、PHP の組み込み関数 array_intersect
および array_diff
を使用して簡単に実装できます。同時に、array_unique
関数を使用して配列内の唯一の要素を抽出し、それを元の配列と比較して、元の配列内の繰り返される要素の位置を見つけることもできます。
以上がPHPで2つの配列のどの要素が重複しているかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。