首页 > 解决方案 > PHP - 检查一个数组值是否在另一个数组中

问题描述

所以我有两个数组:

$gated_categories
array(2) { [0]=> int(3511) [1]=> int(3510) }

$category_id
array(3) { [0]=> int(3518) [1]=> int(3511) [2]=> int(3502) }

正如您在上面看到的,两个数组都包含3511

所以如果$gated_categories包含一个值是$category_id

我希望这个返回true,否则false

我试过这个:

$is_gated = !array_diff($gated_categories, $category_id);

但这是返回错误的,有什么想法吗?

标签: php

解决方案


array_diff()与您想要的相反。它返回一个数组,其中包含其他数组中存在的第一个数组的值。

你需要array_intersect().

if (count(array_intersect($arr1, $arr2))) {
    //at least one common value in both arrays
}

推荐阅读