Проверьте, содержит ли массив все элементы другого массива?

У меня есть 2 массива, второй массив должен содержать все элементы в первом массиве, как это проверить? Спасибо

<code>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 
</code>

Ответы на вопрос(4)

array_intersect() как @ Майкл предложил. Если вы хотите узнать, какой элемент отсутствует, вы можете использоватьarray_diff().

Решение Вопроса

Используйтеarray_intersect() и проверьте, что его вывод имеет одинаковую длину:

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

Для ассоциативного массива, где ключи также должны совпадать, используйтеarray_intersect_assoc() вместо.

 StackOverflowNewbie06 июн. 2012 г., 15:32
Разве ты не можешь рассчитывать на $ arr2?
 Michael Berkowski06 июн. 2012 г., 15:36
@ StackOverflowNewbie Не должно иметь значения, на самом деле. Дело в том, что пересечение этих двух совпадает с содержимым первого или второго и, следовательно, содержит идентичный набор.
$invalid = false;
foreach ($array1 as $key => $value) {
    if (!array_key_exists($key, $array2)) {
        $invalid = true;
        break;
    }
}
var_dump($invalid); 

array_diff может быть полезен здесь.

    // array1 contains elements that are not in array2
    echo "invalid";
}
else {
    // all elements of array1 are in array2
    echo "valid";
}

Ваш ответ на вопрос