PHP 開発では、配列が別の配列内にあるかどうかを判断する必要があることがよくあります。
たとえば、配列 A があるシナリオがあります。配列 A のすべての要素が別の配列 B に存在するかどうかを判断する必要があります。
PHP では、配列が別の配列内にあるかどうかを in_array() 関数を通じて判断できます。ただし、この関数は、ある配列が別の配列に完全に含まれているかどうかを判断できません。したがって、この関数を実装するには自分で関数を記述する必要があります。
以下はカスタム関数の実装です:
function array_in_array($needle, $haystack) { $result = true; foreach ($needle as $value) { if (!in_array($value, $haystack)) { $result = false; break; } } return $result; }
この関数は 2 つのパラメーター $needle と $haystack を受け入れます。
$needle は判定対象の配列を表し、$haystack は判定対象の配列を表します。
関数の戻り値はブール型で、$needle が $haystack に完全に含まれているかどうかを示します。
次は使用例です:
$arrayA = array('apple', 'banana', 'orange'); $arrayB = array('orange', 'banana', 'apple', 'pear'); $result = array_in_array($arrayA, $arrayB); if ($result) { echo '数组A中所有元素都在数组B中'; } else { echo '数组A中存在元素不在数组B中'; }
上の例では、$arrayA には 3 つの要素が含まれ、$arrayB には 4 つの要素が含まれます。 $arrayA のすべての要素は $arrayB に存在するため、$result の値は true になり、プログラムは「配列 A のすべての要素は配列 B にあります」と出力します。
$arrayB を次のように変更すると:
$arrayB = array('orange', 'banana');
上記のコードを実行すると、プログラムは「配列 A に存在する要素は配列 B にありません」と出力します。
この関数は比較的単純ですが、重要なのは原理を理解することです。
foreach ループを通じて $needle 内の要素を走査し、各要素が $haystack 内にあるかどうかを判断できます。 $haystack にない要素がある場合、$needle が $haystack のサブセットではないことを意味し、関数は false を返します。
このようにして、配列が別の配列にあるかどうかを簡単に判断できます。
以上がPHPで配列が配列内にあるかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。