我有两个数组:$ 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');
感谢。
答案 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';
?>