Webstatt.org - Community seit 2006 - 2012 (2024?)

zufalls Array element ausgeben

user-137
31.10.2006 17:15

Hallo,

ich habe einen Array, und will nun ein Element per zufall auswählen, mein problem bestecht nun darin das der Array nicht so aufgebaut ist:

$abc[1] = "1";

dan könnte man es einfach über rand() machen.

Sondern so:
$abc["LOL"] = "1";


Wie mach ich das?

Avatar user-300
31.10.2006 17:18

Zum Beispiel: Du liest alle Arrayschlüssel von abc in ein Array und verwendest rand();
Oder: array_rand() zwinkern

Avatar user-162
31.10.2006 20:47

array_flip() ist schneller (als user-300s 1. Lösung) zwinkern
aber array_rand() ist wohl die Bestelösung

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
Avatar user-168
31.10.2006 21:00

Das ist ganz egal. Ein Array mit Titeln als Index für die Arrayfelder verfügt auch über einen numerierten Index.

Daher kann man auch ganz einfach count() benutzen und dann ein Zufallsarrayfeld per Zufallsfunktion 0 - count()-1 anwenden!

Ich glaube, das konnte man auch mit


foreach ($array as $titel => $wert)
echo $titel.': '.$wert.'<br>';


kontrollieren!

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-162
31.10.2006 21:06

sicher?
aber das:

$a = array("lol" => 1, "lal"=>2);
echo $a[0];

gibt nichts aus... :rolleyes:

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
Avatar user-168
31.10.2006 21:21

Ach verdammt, ich nehme alles zurück! Hab mich auf Arrays von Datenbankabfragen bezogen. Fettes Grinsen

Aber man kann ja trotzdem per Schleife einfach nen numerisches Array anlegen! zwinkern

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-300
01.11.2006 00:41

Original von user-162
array_flip() ist schneller (als user-300s 1. Lösung) zwinkern


Aber auch nur, wenn die Werte alles eindeutige Zahlen ohne Lücken sind zwinkern

Avatar user-162
01.11.2006 12:12

Original von user-300
Original von user-162
array_flip() ist schneller (als user-300s 1. Lösung) zwinkern


Aber auch nur, wenn die Werte alles eindeutige Zahlen ohne Lücken sind zwinkern

was es laut seiner Beschreibung ja sindzwinkern

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
Avatar user-300
01.11.2006 13:35

Original von user-162
Original von user-300
Original von user-162
array_flip() ist schneller (als user-300s 1. Lösung) zwinkern


Aber auch nur, wenn die Werte alles eindeutige Zahlen ohne Lücken sind zwinkern

was es laut seiner Beschreibung ja sindzwinkern


Wohl kaum, sonst würde es ein simples mt_rand() ohne irgendwelche Arrays auch tun frech

user-137
01.11.2006 14:46

Ich habe es so:
$abc["LOL"] = "1";


sonst hätte ich es ja mit rand() machen können.