检查一个数组中的所有值是否在另一个数组中

多重开发

我正在尝试检查数组中是否存在所有必需的值。我以为使用array_intersect应该是我应该使用的:

$required[0] = 'FirstName';
$required[1] = 'LastName';

$posted['Email'] = '[email protected]';
$posted['FirstName'] = 'Bob';
$posted['Group'] = '5';

print_r(array_intersect($required, $posted));

因此,我想确保$posted数组中存在“ FirstName”和“ LastName” 但是,“ LastName”丢失,但这将返回一个空数组结果。

我想念什么?

不要惊慌

如果$posted最初来自$_POST某个点(例如来自表单输入的值),则将设置所有键,即使某些键可能设置为''由于$required数组中有键作为值,因此最好只在循环中检查必填字段。您可以empty用来同时验证它们是否存在并具有真实值。假设以下代码是函数的主体或文件的内容,则应可以执行以下操作:

foreach ($required as $requirement) {
    // if everything has to have a value, just return false as soon as something doesn't
    if (empty($posted[$requirement]) return false;
}
return true;

为什么你有这样做的方式部分array_intersect不能正常工作,因为该功能将检查值$required对中的值$posted,你需要检查中的值$required密钥$posted另一部分是array_intersect将返回两个数组共有的值,而不是缺少的值。

如果其中的某些键$posted实际上可能不存在,则最好$required通过键而不是值来定义数组,然后使用array_diff_key

$required['FirstName'] = true;
$required['LastName'] = true;

$missing_requirements = array_diff_key($required, $posted);

如果在每一个键$required的存在$posted,其结果将是一个空数组,这将评估为false

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查数组是否有另一个数组中的元素

检查一个数组中的每个元素是否在另一个数组中

PHP检查数组是否包含另一个数组的所有数组值

检查数组-值是否包含在另一个数组中?

Lodash方法检查数组中的所有元素是否在另一个数组中

检查一个数组中的所有元素是否都包含在另一个数组中

检查一个数组是否包含另一个数组的值

检查所有数组值是否存在于另一个数组值中

检查一个javascript数组是否包含另一个数组的所有值

检查一个数组中的所有行是否在另一个更大的数组中

从另一个数组中删除一个数组中的值

检查一个数组中的元素是否存在于另一个数组中

如何检查一个数组是否在另一个数组PHP中具有一个接一个的值?

如何检查数组的所有对象是否包含另一个数组?

检查另一个数组中是否存在一个数组的值

检查另一个数组中的数组是否具有相同的元素

检查数组中的类型是否匹配另一个数组中的值

检查列中的值是否为另一个数组的超集

检查数组的所有元素是否包含在另一个数组中

PHP-检查数组值是否在另一个数组中

使用Laravel验证检查数组中的值是否在另一个数组中

检查一个数组中的所有字符串是否在另一个数组中

检查一个数组是否包含在另一个数组中

检查数组中的所有元素是否都存在于另一个数组中

将数组中的一个值组合到另一个数组的所有值 php

检查一个数组是否包含另一个数组的值

检查基于另一个数组的数组中是否存在值

检查另一个数组中的任何数组是否包含另一个数组中的值

从另一个数组内的数组中获取所有值