n'abend,
- Durchlauf:
randomString() took 0.505483865738 seconds and generated 559 unique strings in 10000 runs
get_random_str() took 0.520390033722 seconds and generated 10000 unique strings in 10000 runs
- Durchlauf:
randomString() took 0.470019102097 seconds and generated 559 unique strings in 10000 runs
get_random_str() took 0.521300077438 seconds and generated 10000 unique strings in 10000 runs
- Durchlauf
randomString() took 0.528935909271 seconds and generated 559 unique strings in 10000 runs
get_random_str() took 0.467758178711 seconds and generated 10000 unique strings in 10000 runs
Wenn ich dein Script bei mir ausführe:
randomString() took 0.323642969131 seconds and generated 10000 unique strings in 10000 runs
get_random_str() took 0.680213928223 seconds and generated 10000 unique strings in 10000 runs
Wieso erzeiugt die Array-Lösung bei mir immer 559 unique Strings?
Das kann ich - da es bei mir nicht vorkommt - nicht nachvollziehen.
Das Geheimnis wird wohl in array_rand() liegen.
Ich habe noch nicht in den Quelltext geschaut, wie das nun wieder den Parameter num_req umsetzt.
http://de3.php.net/manual/en/function.array-rand.php
$num_req spezifiziert - wie die Doku schon sagt - die (maximale) Anzahl der Indexe, die man zurück bekommen möchte.
Ich hätte intuitiv das gesamte Array verwürfelt und dann nur die $len Stück in der foreach-Schliefe ausgeschnitten, also foreach bei $len abgebrochen.
Das wäre sicher auch eine Möglichkeit gewesen. Stellt sich die Frage wie das mit der Ausführungszeit ausschaut. Kannst du ja mal ausprobieren ;)
Der Bremser in der String-Lösung war aber eindeutig die while()-Schleife
Wusstest du, dass du auf einen String wie auf ein Array von Zeichen zugreifen kannst?
aus substr($zeichen, mt_rand(0,strlen($zeichen)-1),1)
kann man einfachst $strlen = strlen($zeichen); $zeichen[ mt_rand( 0, $strlen ) -1 ]
machen. Bemerke auch, dass ich das strlen() herausgezogen habe. Das ist wieder so ein Fall von "unveränderliche Werte andauernd neu berechnen" - vollkommen unnötig.
weiterhin schönen abend...
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|