PHP strcmp: jak porovnat dva řetězce v PHP
během jakéhokoli programování získáte vždy situace, kdy je třeba vzájemně porovnávat hodnoty, a pokud jsou hodnoty booleovské nebo celé, pak je srovnání jednoduché.
ale pokud chcete porovnat řetězce nebo části řetězců, pak může být srovnání více, například případ řetězce, který porovnáváte.
funkce porovnává dva řetězce a říká nám, zda je první řetězec větší nebo menší než druhý řetězec nebo se rovná druhému řetězci.
PHP strcmp ()
PHP strcmp () je vestavěná funkce, která porovnává dva řetězce. Funkce strcmp () je binární a malá a velká písmena. Funkce strcmp () se používá k porovnání dvou řetězců. Funkce strcmp () je malá a velká písmena, což poukazuje na to, že kapitál a malé případy budou během srovnání řešeny odlišně.
syntaxe
viz následující syntaxe.
strcmp(string1, string2)
parametry
tato funkce přijímá dva parametry, které jsou popsány níže:
- string1 (povinné): Tento parametr odkazuje na první řetězec, který má být použit v porovnání.
- string2 (povinné): tento parametr odkazuje na druhý řetězec, který má být použit v porovnání.
návratová hodnota
funkce vrací náhodnou celočíselnou hodnotu v závislosti na stavu shody, která je dána:
- vrací 0, pokud jsou řetězce stejné.
- vrací zápornou hodnotu (< 0), pokud je string2 větší než string1.
- vrací kladnou hodnotu (> 0), pokud je string1 větší než string2.
viz následující příklad.
<?phpecho strcmp("AppDividend", "AppDividend");
viz výstup.
➜ pro php app.php0 ➜ pro
nyní projděme dva různé řetězce.
<?phpecho strcmp("Eleven", "Millie Bobby Brown");
viz výstup.
➜ pro php app.php-8 ➜ pro
nyní si vezměme příklad, ve kterém je string1 větší než string2.
<?phpecho strcmp("Millie Bobby Brown", "Maddison");
viz výstup.
➜ pro php app.php8 ➜ pro
takto lze porovnat dva řetězce v PHP pomocí funkce strcmp ().
= = operátor
nejběžnějším způsobem, jak uvidíte porovnání dvou řetězců, je jednoduše pomocí = = operátora. Pokud jsou oba řetězce navzájem stejné, vrátí se true.
<?php// Using the == operator, Strings match is printedif('KRUNAL' == 'krunal'){ echo 'Strings match.';} else { echo 'Strings do not match.';}
viz výstup.
➜ pro php app.phpStrings do not match. ➜ pro
tento KÓD Vrátí, že řetězce nebyly ve stejném případě. To nebude odpovídat.
pokud byla všechna písmena V jednom řetězci velkými písmeny, vrátí se false a řetězce se neshodují.
to znamená, že při porovnávání řetězců z uživatelských vstupů nemůžeme použít operátor==; i když je první písmeno velká, bude stále false.
takže musíme použít nějakou jinou funkci, která pomůže porovnat řetězce.
PHP porovnává dva řetězce a vrací rozdíl
můžeme použít funkci similar_text (), která vypočítá podobnost mezi dvěma řetězci.
vypočítává podobnost mezi dvěma řetězci popsanými v Programming Classics: implementace nejlepších algoritmů na světě Oliverem (ISBN 0-131-00413-1).
Všimněte si, že tato implementace nepoužívá zásobník jako v Oliverově pseudokódu, ale rekurzivní volání může nebo nemusí urychlit celý proces.
Všimněte si také, že složitost tohoto algoritmu je O (N* * 3), kde N je délka nejdelšího řetězce.
viz následující příklad.
<?php$diff = similar_text('Krunal', 'Ankit', $perc);echo $diff;
viz následující výstup.
➜ pro php app.php1 ➜ pro
konečně je příklad PHP strcmp () u konce.
doporučené příspěvky
PHP str_split ()
PHP str_repeat ()
objekt v PHP
základy třídy v PHP