php - 检查数组元素是否在不同的数组中

标签 php arrays for-loop

我正在尝试创建一个函数,如果 $array1 中的所有项目都在 $array2 中,则返回 true,否则返回 false。

我正在尝试做的事情:

$array1 = ['1', '3', '9', '17'];
$array2 = ['1', '2', '3', '4', '9', '11', '12', '17'];

function checkArray($arr, $arr2) {
    If all elements in $arr are in $arr2 return true
    else return false
}

if (checkArray($array1, $array2) {
    // Function returned true
} else {
    // Function returned false
}

我想不出该怎么做!非常感谢您的帮助。

解决方案:

function checkArray($needles, $haystack) {
    $x = array_diff($needles, $haystack);
    if (count($x) > 0) {
        return false;
    } else {
        return true;
    }
}
// Returns false because more needles were found than in haystack
checkArray([1,2,3,4,5], [1,2,3]); 
// Returns true because all needles were found in haystack
checkArray([1,2,3], [1,2,3,4,5]);

最佳答案

function checkArray($arr, $arr2) {
    return !count(array_diff($arr, $arr2));
}

array_diff:返回一个数组,其中包含 $arr 中不存在于 $arr2 中的所有条目。 http://php.net/manual/en/function.array-diff.php

关于php - 检查数组元素是否在不同的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15647313/

相关文章:

java - 如何根据用户输入在paint方法中绘制墙

php - 控制多个版本的PHP项目

php - 使用 $.ajax 请求使用 PHP 到 MYSQL 数据库的 jQuery 表单处理

javascript - 如何将三维数组分割为三个 for in 循环?

jquery - 如何打印jquery对象/数组

arrays - 强制执行数组内容的 JSON 模式

php - 如何使 apache 进程 TCP 连接?

php - HTML PHP - 专业 URL,为什么我不能在 html 文件中使用 php include?

带有for循环的Python双重打印

java - 为什么这个 for 循环不使用 Apache POI 迭代行? java