php检查一个数组是否只包含另一个数组的元素值

标签 php arrays

我想检查一个数组是否只包含允许的元素值(在另一个数组中可用)。

例子:

$allowedElements = array('apple', 'orange', 'pear', 'melon');

checkFunction(array('apple', 'orange'), $allowedElements); // OK

checkFunction(array('pear', 'melon', 'dog'), $allowedElements); // KO invalid array('dog') elements

实现这个 checkFunction($a, $b) 函数的最佳方法是什么?

最佳答案

count($array) == count(array_intersect($array,$valid));

.. 或者想一想;

$array == array_intersect($array,$valid);

请注意,如果 (string)$elementtocheck=(string)$validelement,这将产生 true,因此本质上,仅可用于标量。如果你的数组(数组、对象)中有更复杂的值,这将不起作用。为了使那个起作用,我们稍微改变一下:

sort($array);//order matters for strict
sort($valid);
$array === array_intersect($valid,$array);

...假设当前顺序无关紧要/sort() 被允许调用。

关于php检查一个数组是否只包含另一个数组的元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18255500/

相关文章:

php - PHP图片上传问题

php - Codeigniter- 检查用户在一个月内是否存在

javascript - 使用 jquery 发送填充多个 div 的数据的最佳方式?

javascript - BASIC Javascript array function,问题已知但我无法理解解决方案

C - 反转字符串数组中单词的顺序

javascript - JS - Array.prototype.clone 向所有数组添加一个元素

php - 如何将我的 wp-login.php 设为主页?

javascript - 有<# #>标签吗?如果不是的话,它在这段代码中有什么用处

java - Jackson 中的自动 String 到 int[] 转换

ios - 如何在 Swift 中解析具有多个数组的 JSON