Hallo, ich
habe Wertepaare die in einer Stingliste stehen.
Also so
$stingliste = ‚name1=wer1&name2=wer2&name3=wer3‘
Dafür habe ich jetzt eine Funktion geschrieben, welche bei Übergabe eines Namens den entsprechenden Wert ausgiebt.
Klar ? Wenn ich sage echo getWertStingListe( ‚name1‘ , $stingliste , ‚&‘ , ‚=‘ )
muss also ‚wer1‘ ausgespuckt werden.
Es gibt mehrere Möglichkeiten so eine Funktion zu schreiben. Mir sind drei eingefallen.
Ich habe die Zeit gemessen… die Lösung steht am Ende … kannst du erraten welche Möglichkeit die schnellste ist ?
Ich suche eine möglichste schnelle Variante - logsich oder ?
Weis jemand noch eine bessere ?
Danke und viel Spaß beim raten. Sebastian
P.S.: Vielleicht muss man die Stingliste auch anders gestalten damit es schneller geht ?
function getWertStingListe( $name , $stingliste , $paartrenn , $zuordtrenn ){
global $Möglichkeit;
# Möglichkeit 2
if ( $Möglichkeit == 2 ) {
if ( preg\_match("/&".$name."=([^&]+)&/i" , '&'.$stingliste.'&' , $egal ) )
return $egal[1] ; # Der Wert ist gefunden.
else
return false ; # Es wurde kein Wert gefunden.
}
# Möglichkeit 3
if ( $Möglichkeit == 3 ) {
# Wir gehen davon aus das $zuordtrenn , $stingliste nicht in einem Wert oder einem Name vorkommt/ vokommen darf.
# Daher vereinfachen wir den Ausdruck.
$stingliste = str\_replace( $zuordtrenn , $paartrenn , $stingliste ) ;
$temp = explode ( $paartrenn , $stingliste );
for( $i = 0 ; $i Dauer mit Möglichkeit $Möglichkeit: ".(time()-$startzeitpunkt )." Milisekunden bei $i Aufrufen der Funktion.";
?\>