我正在比较两个爆炸字符串的结果(查询的结果),但是当我使用 array_intersect 查找数组的重叠时,不幸的是,我只收到了每个数组中首先出现的那些标签的重叠......所以例如,如果两个数组如下所示:
阵列1:
array(
[0]=> tag_a
[1]=> tag_b
)
数组2:
array(
[0]=> tag_a
[1]=> tag_b
)
Array_Intersect 仅返回tag_a作为匹配项。我预计 array_intersect 的行为会返回 tag_a 和 tab_b。
正如您稍后在我的代码中看到的那样,我使用匹配项(两个数组中都存在的标签)来构建数组contactarray。我可以构建数组,它只是不包含我期望的值(例如:tag_b)。
编辑我已经运行了几个测试打印contactarray并将各种标签字符串应用于这些联系人,并且只有具有tag_a的联系人(在数组中)被返回,即使其他几个联系人有tag_a,虽然它不是第一个数组。想法?
if ($frequency == 'Weekly')
{
$data['query_tag'] = $this->db->get('tags');
foreach ($data['query_tag']->result() as $row2)
{
$contact_tags = $row2->tags;
$contact_tags_exploded = explode(",", $contact_tags);
$rule_tags_exploded = explode(",", $rule_tags);
$result = array_intersect($rule_tags_exploded, $contact_tags_exploded);
if(isset($result) && count($result) != 0){
$contactarray[] = $row2->contact_name;
}
}
}