PHP 開発では、配列が別の配列に存在するかどうかをクエリする必要がある状況によく遭遇します。この状況は通常、ユーザーが送信したデータが正当であるかどうか、および 2 つのテーブル間に関係が存在するかどうかを判断する必要があるシナリオで発生します。この状況に対応して、この記事では、配列が存在するかどうかをクエリするための PHP のメソッドをいくつか紹介します。
方法 1: array_diff 関数を使用する
array_diff 関数を使用して、配列の差分セットを計算できます。2 つの配列に共通部分がない場合は、元の配列が返されます。そうでない場合は、交差の外側の要素、つまり差分セットが返されます。したがって、array_diff 関数を使用して、2 つの配列間に交差があるかどうかを判断できます。交差がある場合は、配列間の要素が同じであることを意味します。そうでない場合は、要素は存在しません。
サンプル コード:
if (count(array_diff($arr1, $arr2)) == 0) { echo "数组arr1存在于数组arr2中"; } else { echo "数组arr1不存在于数组arr2中"; }
上記のコードでは、配列 $arr1 と $arr2 の間の差分セットを比較します。差分セットが空の場合、配列 $arr1 が完全に存在することを意味します。配列 $arr2 に存在します。
方法 2: array_intersect 関数を使用する
array_intersect 関数を使用すると、配列の交差部分を計算できます。2 つの配列間に交差部分がある場合、交差部分の要素が返されます。交差がない場合は、空の配列が返されます。したがって、array_intersect 関数を使用して、2 つの配列間に交差があるかどうかを判断できます。交差がある場合は、同じ要素が配列間に存在することを意味します。そうでない場合は、それらは存在しません。
サンプル コード:
if (count(array_intersect($arr1, $arr2)) > 0) { echo "数组arr1存在于数组arr2中"; } else { echo "数组arr1不存在于数组arr2中"; }
上記のコードでは、配列 $arr1 と $arr2 の交差部分を比較します。交差部分が空でない場合は、少なくとも 1 つの要素があることを意味します配列 $arr1 内、配列 $arr2 内。
方法 3: in_array 関数を使用する
in_array 関数を使用すると、要素が配列内に存在するかどうかを判断できます。したがって、in_array 関数を使用してループして、配列 $arr1 の各要素が配列 $arr2 に存在するかどうかを確認できます。配列 $arr1 のすべての要素が配列 $arr2 に存在する場合、配列 $arr1 が配列 $arr2 に完全に存在することを意味します. 配列 $arr2 にある、そうでない場合は存在しません。
サンプル コード:
$flag = true; foreach ($arr1 as $value) { if (!in_array($value, $arr2)) { $flag = false; break; } } if ($flag) { echo "数组arr1存在于数组arr2中"; } else { echo "数组arr1不存在于数组arr2中"; }
上記のコードでは、配列 $arr1 の各要素が配列 $arr2 に存在するかどうか、配列 $arr1 のすべての要素が配列 $ に存在するかどうかをループして判断します。 arr2 では、$flag 変数を定義して値 true を割り当てます。それ以外の場合は、$flag の値を false に変更します。最後に、$flag の値に基づいて、配列 $arr1 が配列 $arr2 に存在するかどうかを判断します。
上記は、配列が存在するかどうかをクエリするための PHP のいくつかのメソッドです。開発者は、実際のビジネス シナリオに応じてさまざまな方法を選択できます。
以上がPHPクエリ配列が存在するかどうかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。