Php 验证数组之间的键/值对

Php 验证数组之间的键/值对,php,arrays,Php,Arrays,我有一个主阵列,还有几个阵列需要对照主阵列进行验证 主数组是键/值对的列表。其他阵列必须由部分或全部这些对组成,而不是其他 以下是一些需要澄清的示例: $master = [1=>'foo', 2=>'bar', 3=>'baz']; $good_child = [2=>'bar']; $wrong_child_1 = [2=>'sparta']; $wrong_child_2 = [42=>'bar']; 目前,我正在使用这段快速代码进行验证: forea

我有一个主阵列,还有几个阵列需要对照主阵列进行验证

主数组是键/值对的列表。其他阵列必须由部分或全部这些对组成,而不是其他

以下是一些需要澄清的示例:

$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
    }
}
您可能已经注意到,如果未定义索引上面的$error_child_2出现错误,那么它可能会失败,尽管这在实际应用程序中不是问题,至少目前是这样

我的问题是,有没有更好的方法进行这些验证?最好没有循环,而不是数组函数。

看看


换句话说,$test\u数组不会验证是否存在任何差异,包括索引检查。

更好的方法是2行代码解决方案还不够好?但无论如何,您可以:1。检查阵列大小。2.使用array_intersect_assoc获取相同的元素。3.检查步骤2的结果==数组长度。但这将比你已经拥有的更加复杂谢谢,我错过了数组,我可以做ksort$master;ksort$child$child==数组\u相交\u关联$master,$child;。我希望我没有应用ksort的…这个函数非常适合我的需要!只需使用构造empty来检查空数组;哈哈,忘了PHP<5.5
$bad = (bool)count(array_diff_assoc($test_array, $master_array))