匹配两个PHP数组中的元素

时间:2013-12-20 20:09:05

标签: php arrays

我正在为一系列主题创建搜索过滤器。基本上,我试图比较两个阵列。

$filtered_subjects = ["math", "science", "english"]

我将这与教师教授的科目进行比较。基本上,如果数组filtered_subjects的每个成员都存在于教师的数组中,并且该教师的数组不包含其他主题,则应标记并删除它。

所以对于以下老师:

$bob_subjects = ["math"]
$sam_subjects = ["math", "science", "english", "astronomy"]

鲍勃应该被删除, 萨姆应该留下来。

关于如何使用PHP最好地完成此任务的任何想法?我如何比较这两个数组并得到YES或NO,以确定是否应该删除教师?

我考虑的一种方法是做以下事情:

$result = array_diff($filtered_subjects, $sam_subjects);
if in_array($result, $filtered_subjects)
{
    // remove teacher
} else if in_array($result, $sam_subjects)
{
    // don't remove teacher
}

1 个答案:

答案 0 :(得分:0)

使用array_intersect

$filtered_subjects = ["math", "science", "english"];
$sam_subjects = ["math", "science", "english", "astronomy"]
if (sizeof(array_intersect($filtered_subjects, $sam_subjects)) == sizeof($filtered_subjects)) {
    // it's your teacher
} else {
    // else
}