2012-03-28 19 views
1

Ich habe zwei Saiten für Groß- und Kleinschreibung Gleichheit zu vergleichen, die eine schnellere strcasecmp() oder gleich Operatorwelcher ist schneller/besser strcasecmp() oder gleich Operator?

$str1='Hello'; 
$str2='hello'; 

//first approach 
if($str1 != strotolower($str2)) 
    //do some stuff here 

//second approach 
if(strcasecmp($str1,$str2) !=0) 
    //do some stuff here) 

welcher Ansatz ist besser/schneller?

+0

Ich würde vorschlagen, '$ str1 mit = strotolower ($ str2)' – hjpotter92

+1

@ hjpotter92 - warum die langsamere was darauf hindeutet!? – Polity

+0

Planen Sie, es für eine signifikante Menge von Daten zu tun? – JohnP

Antwort

7

Beide Ansätze sind o (n) in der Geschwindigkeit jedoch usign strtolower eine neue Zeichenfolge zuordnet, die das Ergebnis halten wiederum erhöht Speicherdruck und reduziert die Leistung

+0

Dank @Polity, werde ich mit dem zweiten Ansatz der Verwendung von strcasecmp() -Funktion gehen – Rahul

2

du versuchen:

//********************************* 
    $start1 = microtime(true); 
    for ($i = 0; $i < 10000000; ++$i) { 
     if (strcasecmp('STRING1', 'string1') == 0) {} 
    } 
    $end1 = microtime(true); 
    echo 'Time1: ' . ($end1 - $start1) . '<br/>'; 
    //********************************* 
    $start2 = microtime(true); 
    for ($i = 0; $i < 10000000; ++$i) { 
     if (strtolower('STRING1') == strtolower('string1')) {} 
    } 
    $end2 = microtime(true); 
    echo 'Time2: ' . ($end2 - $start2) . '<br/>'; 
    //********************************* 
    $start3 = microtime(true); 
    for ($i = 0; $i < 10000000; ++$i) { 
     if (strtolower('STRING1') == 'string1') {} 
    } 
    $end3 = microtime(true); 
    echo 'Time3: ' . ($end3 - $start3) . '<br/>'; 
    //********************************* 

Ergebnis :

Zeit1: 2,8758139610291

Time2: 4,6863219738007

Time3: 2,5191688537598

+0

Bitte überprüfen Sie diese Sol. zu http://www.alwaysgetbetter.com/blog/2013/09/29/comparing-strtolower-strcasecmp-caseinsensitive-string-checking-php/ – sgazelle

Verwandte Themen