Ich möchte ein Skript schreiben, das mir einen Wert geben kann, der nicht genau ist, aber nahe am vom Benutzer eingegebenen Wert liegt. Zum Beispiel: Es ist wie ein String-Vergleich. Vergleichen von Zeichen der Benutzerabfrage.Sie müssen ein PHP-Skript schreiben, das einen Wert nahe dem vom Benutzer eingegebenen Wert anzeigt.
Daten werden in SQL gespeichert. Zum Beispiel:
$string1="Where were you";
$string2="where ere youuu";
$string1
ist Wert in der Datenbank gespeichert.
$string 2
ist Benutzerwert.
Es sollte Ausgabe wie folgt zurück:
where were you
ich dies tun, aber es funktioniert nicht gut für mich:
$a = "hello where are you";
$b = "hell re r u"; $str = "";
for ($i=0; $i < strlen($a); $i++) {
for ($j=0; $j < strlen($b); $j++) {
if ($a[$i]==$b[$j]) {
$str.=$a[$i];
break;
}
}
}
echo $str;
Es ist nicht die gewünschten Ergebnisse geben.
Es gibt eine Vielzahl von Ansätzen dazu, wie verschiedene String-Vergleichsalgorithmen den „Abstand“ zwischen zwei Strings zu bestimmen, oder die Verwendung von Dingen wie „soundex“ (https://en.wikipedia.org/wiki/Soundex). – David
Wie definieren Sie ein "genaues Ergebnis"? Das ist keine triviale Sache. – kabanus
Ich denke, was Sie wollen, ist eine sehr ernste Suchlogik und sicher wird es nicht mit zwei 'for' Zyklen passieren. Versuchen Sie, Google nach einer Art Volltextsuche zu durchsuchen. Gib uns einige weitere Details. Wenn Daten auf SQL-Server sind, versuchen Sie, die Zeichenfolge in Stücke zu teilen und ein 'LIKE' zu machen – codtex