我正在用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失败,因为我接着是一个关联数组和一个非关联数组之间的交集。有人可以赐教我吗?
答案 0 :(得分:0)
事实证明,当数组的条目本身就是数组时,array_intersect不起作用(就像我的情况一样)。使用array_uintersect()可以解决问题。