PHP - 如果一个数组中的一个或多个允许值在另一个数组中

时间:2015-03-12 13:00:58

标签: php arrays

我有两个数组:$ user_level和$ allowed_levels

检查$ user_level数组是否包含$ allowed_level中的一个或多个数组项的最佳方法是什么?

代码可以在这里看到:

$user_level = array('Level 1', 'Level 2', 'Level 3', 'Level 4', 'Level 5');

$allowed_levels = array('Level 1', 'Level 2');

感谢。

3 个答案:

答案 0 :(得分:3)

array_diff函数将创建两个数组中不存在的值数组。然后,您可以检查这是否为空。如果它不为空,那么这将意味着$ user_levels包含一个或多个$ allowed_level数组项:

 $user_level = array('Level 1', 'Level 2', 'Level 3', 'Level 4', 'Level 5');
 $allowed_levels = array('Level 1', 'Level 2');
 $result = array_diff($user_level, $allowed_levels)

 if(!(empty($result)){
    **Code if it is not empyy**
 }

答案 1 :(得分:0)

这样做

$result = array_intersect($user_level,$allowed_levels);

然后将$ allowed_levels与$ result进行比较。

答案 2 :(得分:0)

这是我的建议:

<?php
$count = 0;
foreach ($user in $user_level)
{
if(in_array($user,$allow_levels)
{
$count.=1;
}
}
echo 'There were ' . $count . ' matches';

?>