PHP 開発では、配列の交差は一般的な操作です。ただし、PHP が提供する配列交差関数は、2 つの配列の場合のみ処理できます。複数の配列の交差を処理する必要がある場合は、交差演算をカスタマイズする必要があります。
この記事では、PHP 配列の共通部分をカスタマイズし、実装コードを提供する方法を紹介します。
複数の配列の共通部分を処理する必要があります。たとえば、次の 4 つの配列があります:
$arr1 = array(1, 2, 3); $arr2 = array(2, 3, 4); $arr3 = array(3, 4, 5); $arr4 = array(4, 5, 6);
次に必要なものがあります。これら 4 つの配列の交差を解決します。
次の手順で配列の交差を実現できます。
2.1 すべての配列の要素を新しい配列に保存し、実行します。新しいアレイに対する重複排除操作。
2.2 元の配列に各要素が出現する回数を数えます。その数が元の配列の数と等しい場合、その要素は元のすべての配列に出現したことを意味し、その要素が元の配列に追加されます。結果の配列。
以下は具体的な実装コードです:
function array_intersect_multi() { $arrays = func_get_args(); $counts = array_count_values(call_user_func_array('array_merge', $arrays)); $intersected_array = array(); $arrays_count = count($arrays); foreach ($counts as $value => $count) { if ($count === $arrays_count) { $intersected_array[] = $value; } } return $intersected_array; }
上記のコードの関数 array_intersect_multi()
複数の配列交差演算を実装できます。
この関数には、配列コレクションである入力パラメーターが 1 つあります。配列コレクションは、複数の配列で構成される配列です。
この関数は、配列コレクション内のすべての配列の要素を新しい配列に追加し、新しい配列に対して重複排除操作を実行します。
次に、関数は元の配列に各要素が出現した回数をカウントします。その数が元の配列の数と等しい場合、その要素は元の配列のすべてに出現したことを意味します。そして結果の配列に追加されます。
最後に、関数は配列の交差結果を返します。
上記の関数を使用して 4 つの配列の共通部分を解決できます。例は次のとおりです:
$arr1 = array(1, 2, 3); $arr2 = array(2, 3, 4); $arr3 = array(3, 4, 5); $arr4 = array(4, 5, 6); $intersected_array = array_intersect_multi($arr1, $arr2, $arr3, $arr4); print_r($intersected_array);
出力結果は次のとおりです。 :
Array ( [0] => 4 )
ご覧のとおり、4 つの配列の共通部分は 4
です。
配列の交差演算をカスタマイズすることで、複数の配列の交差を簡単に処理できます。この記事では配列の交差を実装する手順とコードを紹介しますので、皆様のお役に立てれば幸いです。
以上が配列交差の PHP カスタム実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。