私は、array_uniqueを使用して、入力している検索結果から重複を削除しようとしています。ただし、未定義のオフセットエラーが発生します。このエラーの原因と、それを修正するために何ができるかを誰かが知っているかどうか疑問に思いました。以下に示すように、2つの異なる場所から検索結果を入力し、すべての一致を1つの配列にマージしようとしています。
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;