php中的连续数组交集

时间:2014-11-06 09:29:35

标签: php mysql arrays

我正在用php编写一个文件元数据应用程序,我需要搜索有多个标签的文件。信息存储在带有fileId和tagID的mySQL表中。我这样做的方法是在表格中搜索第一个tagId,然后将结果文件列表的交集与剩余标签的连续SQL调用相交:

$files = $cfiles->searchFiles($owner,$tags[0]);                                                                                     
foreach($tags as $tag){                                                           
  $temp = $cfiles->searchFiles($owner, $tag);
  $files = array_intersect($files, $temp);
}    

问题是array_intersect创建了一个关联数组,即

$ files = array(" id1"," id2",..." idn");

变为

$ files = array(" 0" =>" id1"," 1" =>" id2",..

当我与自己交叉时。问题是,在下一个标记的下一次迭代中,array_intersection失败,因为我接着是一个关联数组和一个非关联数组之间的交集。有人可以赐教我吗?

1 个答案:

答案 0 :(得分:0)

事实证明,当数组的条目本身就是数组时,array_intersect不起作用(就像我的情况一样)。使用array_uintersect()可以解决问题。