Zum Inhalt springen

PHP Basics: Strings – Vergleichsfunktionen: strcasecmp, strcmp, similar_text, levenshtein

1. == und ===:

Siehe eigener Artikel dazu: http://www.knowr.de/php-unterschied-und/

2. strcasecmp(): case-insensitive

int strcmp ( string $str1 , string $str2 )

$str1 und $str2 sind die beiden zu vergleichenden Strings. Ist $str1 kleiner als $str2 wird ein int < 0 zurückgegeben, ist str1 größer als str2 ein int > 0, bei Gleichheit ein int = 0. Der Vergleich ist nicht case sensitive.

3. strcmp(): case-sensitive

int strcmp ( string $str1 , string $str2 )

$str1 und $str2 sind die beiden zu vergleichenden Strings. Ist $str1 kleiner als $str2 wird ein int < 0 zurückgegeben, ist str1 größer als str2 ein int > 0, bei Gleichheit ein int = 0. Der Vergleich ist case sensitive.

4. similar_text(): num of matching chars

int similar_text ( string $str1, string $str2[, float &$percent ] )

$str1 und $str2 sind die beiden zu vergleichenden Strings. Der Rückgabewert entspricht der Anzahl der übereinstimmenden Parameter.

Wenn als weiter Parameter $percent eine float Variable übergeben wird, wird in diese der Prozentsatz der Übereinstimmung geschrieben. Beispiel:

<?php
$str1 = 'SIMILAR';
$str2 = 'TO THEM';

similar_text($str1, $str2, $percent);

echo $percent;
// 0 (keinerlei übereinstimmende Char)

5. levenshtein(): Levenshtein-Distanz

int levenshtein ( string $str1 , string $str2 )

Levenshtein-Distanz: Minimale Anzahl von Zeichen, die Sie ersetzen, einfügen oder löschen müssen, um str1 in str2 umzuwandeln. Entspricht daher dem Rückgabewert. Wenn einer der beiden Werte 255 Zeichen überschreitet, wird -1 zurückgegeben.

Es gibt noch die Möglichkeit, die Kosten für das Einfügen ($cost4ins), Ersetzen ($cost4rep) oder Löschen ($cost4del) von Zeichen zu definieren.

int levenshtein ( string $str1 , string $str2 , int $cost4ins , int $cost4rep , int $cost4del )

Kommentare sind geschlossen, aber Trackbacks und Pingbacks sind möglich.