[PHP] - Bessere Varianten zufälligen Wert aus Array ausgeben

Benutzer-621

abgemeldet
20 April 2006
744
64
Moin,
Ich suche eine bessere, die beste Varianten um einen zufälligen Wert aus einem Array auszugeben.

In den Scripts, die ich bisher gesehen habe wird meistens
PHP:
$var = $array[(mt_)rand(0, count($array)-1)]
benutzt.

Aber es gibt ja noch shuffle, was ich denke am besten ist.

PHP:
$sort = shuffle($array);
$var = $array[0];

oder doch vllt., was eigentlich keinen Sinn macht, oder???

PHP:
$sort = shuffle($array);
$var = $array[mt_rand(0, count($array)-1)];
 
tester schrieb:
Aber es gibt ja noch shuffle, was ich denke am besten ist.

PHP:
$sort = shuffle($array);
$var = $array[0];

oder doch vllt., was eigentlich keinen Sinn macht, oder???

PHP:
$sort = shuffle($array);
$var = $array[mt_rand(0, count($array)-1)];

mal noch ein wenig weiter denken... shuffle sortiert den kompletten array um, was bedeutend mehr leistung kostet als einmal die anzahl der ellemente zu bestimmen und dann ein zufälliges ellement auszuwählen.
 
ZeroCCC schrieb:
mal noch ein wenig weiter denken... shuffle sortiert den kompletten array um, was bedeutend mehr leistung kostet als einmal die anzahl der ellemente zu bestimmen und dann ein zufälliges ellement auszuwählen.

achso, ist dann count/rand besser/schneller als array_rand?
 
tester schrieb:
achso, ist dann count/rand besser/schneller als array_rand?
to shuffle: Englisch für MISCHEN
array_rand: Pick one or more random entries out of an array

Nun Überleg dir mal, was ist schneller, einen Stapel Karten richtig gut Mischen oder eine Zufällige zu ziehen?

array_rand ist somit die bevorzugte Lösung.
Wird am schnellsten und Elegantesten sein.
 
veers schrieb:
to shuffle: Englisch für MISCHEN
array_rand: Pick one or more random entries out of an array

Nun Überleg dir mal, was ist schneller, einen Stapel Karten richtig gut Mischen oder eine Zufällige zu ziehen?

array_rand ist somit die bevorzugte Lösung.
Wird am schnellsten und Elegantesten sein.

*zustimmt*
 
veers schrieb:
array_rand ist somit die bevorzugte Lösung.
Wird am schnellsten und Elegantesten sein.

Im Zweifel entscheide ich mich immer für die vorhandenen Methoden. Ich geh immer davon aus, dass die Macher mehr Ahnung haben als ich. ;)

Gruß, Zera