我有一个数组结构,我想检查数组中某处是否存在键/值。但我想以这样的方式进行测试,即制作一个几乎镜像的验证数组。
假设我有一个多维数组。这是我要验证的数据。
Array
(
[key1] => Array
(
[subkey1] => value
[subkey2] => value
)
[key2] => Array
(
[subkey3] => Array
(
[key1] => value
[key2] => value
[key3] => value
[key4] => value
[key5] => value
[key6] => value
)
)
);
这是需要出现在第一个数组中的键和值的数组。
Array
(
[key1] => Array
(
[subkey2] => value
)
[key2] => Array
(
[subkey3] => Array
(
[key5] => value
[key6] => value
)
)
);
我无法比较这两个数组,因为它们永远不会相同。但我需要以某种方式运行数据数组并根据验证数组进行验证。键和值都需要位于正确的位置,并且键需要相同的名称,值也应该相同。我只是不确定如何进行像样的检查。我可以进行一些递归检查吗?由于某些键可以是一个值或另一个数组,因此它也需要检查这一点......这就是为什么我正在考虑递归,但我不确定如何实现。
希望你能帮忙。谢谢。
您可以使用它来递归地确定是否所有必需的键都存在:
function has_recursive($data, $required)
{
foreach ($required as $key => $value) {
if (!isset($data[$key])/* && $data[$key] === $value */) {
return false;
}
if (is_array($data[$key]) && false === has_recursive($data[$key], $value)) {
return false;
}
}
return true;
}
has_recursive($data, $required); // false or true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)