Проверка пар ключ / значение между массивами

У меня есть «главный» массив, и несколько массивов я должен проверить против хозяина.

Главный массив представляет собой список пар ключ / значение. Другие массивы должны быть сделаны из некоторых (или всех) этих пар, ничего другого .

Вот несколько примеров для пояснения:

$master = [1=>'foo', 2=>'bar', 3=>'baz']; $good_child = [2=>'bar']; $wrong_child_1 = [2=>'sparta']; $wrong_child_2 = [42=>'bar']; 

В настоящее время я делаю проверку с помощью этой быстрой части кода:

 foreach ($child as $key => $value) { if ($master[$key] !== $value) { // wrong child } } 

Вы уже, возможно, заметили, что с ошибкой $wrong_child_2 (неопределенный индекс) это не $wrong_child_2 , хотя это не проблема в реальном приложении (по крайней мере пока).

Мой вопрос в том, будет ли лучший способ сделать эти проверки? Предпочтительно без циклов, а скорее массивные функции.

Посмотрите на array_diff_assoc .

 $bad = (bool)count(array_diff_assoc($test_array, $master_array)) 

Другими словами, $test_array не проверяет наличие различий, включая проверку индекса.