检查数组是不是至少包含 PHP 中的一组值

Posted

技术标签:

【中文标题】检查数组是不是至少包含 PHP 中的一组值【英文标题】:Check that an array includes at least a set of values in PHP检查数组是否至少包含 PHP 中的一组值 【发布时间】:2015-11-27 12:04:57 【问题描述】:

如何检查$courseAreas 数组是否包含至少“ayrshire” 和“fife”?

我尝试了以下代码,但它不起作用:

$courseAreas = array('ayrshire', 'fife', 'cheshire', 'lanarkshire');
$includesAyrshireAndFife = (count(array_intersect(array('ayrshire', 'fife'), $courseAreas)) >= 2 ? true : false);

【问题讨论】:

似乎工作得很好?究竟什么“不起作用”? 【参考方案1】:

尝试将? true : false 放在大括号外

$courseAreas = array('ayrshire', 'fife', 'cheshire', 'lanarkshire');
$includesAyrshireAndFife = (count(array_intersect(array('ayrshire', 'fife'), $courseAreas)) >= 2) ? true : false;
var_dump($includesAyrshireAndFife);

$courseAreas = array('ayrshire', 'stirlingshire', 'cheshire', 'lanarkshire');
$includesAyrshireAndFife = (count(array_intersect(array('ayrshire', 'fife'), $courseAreas)) >= 2) ? true : false;
var_dump($includesAyrshireAndFife);

Seems to work

但是您的原件似乎也运行良好....在什么情况下您发现它失败了?

【讨论】:

【参考方案2】:
$courseAreas = array('ayrshire', 'fife', 'cheshire', 'lanarkshire');
$includesAyrshireAndFife = count(array_intersect(array('ayrshire', 'fife'), $courseAreas)) > 1;

你甚至不需要三元运算符,因为 > 它已经是布尔表达式。

编辑

我注意到您的代码也可以正常工作。我只是缩短了它。

【讨论】:

【参考方案3】:

你可以使用in_array()

见:- http://www.w3schools.com/php/func_array_in_array.asp

【讨论】:

以上是关于检查数组是不是至少包含 PHP 中的一组值的主要内容,如果未能解决你的问题,请参考以下文章

将字符串重新分配给数组中的一组值列表

C++ 在 Map 中的类的一组值中插入一个值

确定一个值是不是在 Java 中的一组值中的最快方法是啥?

如何检查数组是不是包含至少一个对象?

如何确保一列包含一组值中的一个?

使用 extjs5 中的视图模型将 json 字符串中的一组值放入表单中