验证数组之间的键/值对

时间:2014-05-16 04:25:47

标签: php arrays

我有一个"主人"数组,以及我必须针对主数据验证的几个数组。

主数组是键/值对的列表。其他数组必须由这些对中的一些(或全部)组成,别无其他

以下是一些澄清的例子:

$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(未定义的索引)而失败,尽管它在实际应用程序中不是问题(至少目前为止)。

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

1 个答案:

答案 0 :(得分:1)

查看array_diff_assoc

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

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