4

私は2つの配列を持っています、2番目の配列は最初の配列のすべての要素を含まなければなりません、これをチェックする方法は?ありがとうございました

For example

array 1: Array ( [0] => Email [1] => 1_Name )
array 2:  Array ( [0] => 1_Name [1] => ) 

In this case it is invalid , as array 2 do not have Email

array 1: Array ( [0] => Email [1] => 1_Name )
array 2:  Array ( [0] => 1_Name [1] => Address [2]=> Email )

 In this case it is valid 
4

4 に答える 4

4

array_intersect()その出力が同じ長さであることを使用してテストします。

if (count(array_intersect($arr1, $arr2)) === count($arr1)) {
  // contains all
}

キーも一致する必要がある連想配列の場合は、array_intersect_assoc()代わりにを使用してください。

于 2012-05-07T16:55:22.173 に答える
2

array_diffここで役立ちます。

if( array_diff($array1,$array2)) {
    // array1 contains elements that are not in array2
    echo "invalid";
}
else {
    // all elements of array1 are in array2
    echo "valid";
}
于 2012-05-07T16:56:47.093 に答える
1
$invalid = false;
foreach ($array1 as $key => $value) {
    if (!array_key_exists($key, $array2)) {
        $invalid = true;
        break;
    }
}
var_dump($invalid); 
于 2012-05-07T16:55:24.953 に答える
0

array_intersect()@Michaelが提案したようなものがあります。欠落している要素を知りたい場合は、を使用できますarray_diff()

于 2012-05-07T16:57:07.087 に答える