我有一个"主人"数组,以及我必须针对主数据验证的几个数组。
主数组是键/值对的列表。其他数组必须由这些对中的一些(或全部)组成,别无其他。
以下是一些澄清的例子:
$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
(未定义的索引)而失败,尽管它在实际应用程序中不是问题(至少目前为止)。
我的问题是,是否有更好的方法来进行这些验证?最好没有循环,而不是数组函数。
答案 0 :(得分:1)
$bad = (bool)count(array_diff_assoc($test_array, $master_array))
换句话说,$test_array
不会验证是否存在任何差异,包括索引检查。