我一直在尝试使用 array_unique 从我填充的搜索结果中删除重复项。但是,我收到未定义的偏移错误。我想知道是否有人知道导致此错误的原因以及我能做些什么来解决它?正如您在下面看到的,我正在从两个不同的地方填充搜索结果并尝试将所有匹配项合并到一个数组中。
在array_unique 之前:Array([0] => Bob Marley Footwear [1] => Bob Marley Footwear [2] => DVS Shoe Co.)
在array_unique 之后:Array([0] => Bob Marley Footwear [2] => DVS Shoe Co.)
注意:这会导致在遍历数组时尝试访问数组插槽 1 时出现错误消息,以打印出结果。
$results = mysql_query("SELECT keywords,name FROM files WHERE MATCH (keywords,name) AGAINST ('$searchfor')") or die(mysql_error());
$matches=Array();
$matches_final=Array();
while($row = mysql_fetch_array($results)){
$matches[] = $row['name'];
}
$matches_final = array_unique($matches);
$results1 = mysql_query("SELECT name FROM files");
while($row1 = mysql_fetch_array($results1)){
$temp = explode(" ", $row1['name']);
for($z=0; $z < sizeof($search_words); $z++){
for($i=0; $i < sizeof($temp); $i++){
if(((strcmp(strtolower($search_words[$z]), strtolower($temp[$i])))==0) and strlen($search_words[$z])<=5){
$matches_final[] = $row1['name'];
}
}
}
}
return $matches_final;