Willkommen in der Webstatt
User-1 am 31.10.06 18: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?

netcup.de Warum gibt es hier Werbung?
User-2 am 31.10.06 18:18

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

User-3 am 31.10.06 21:47

array_flip() ist schneller (als xyz-190s 1. Lösung) ;)
aber array_rand() ist wohl die Bestelösung

User-4 am 31.10.06 22: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!

User-3 am 31.10.06 22:06

sicher?
aber das:
$a = array("lol" => 1, "lal"=>2);
echo $a[0];

gibt nichts aus... :rolleyes:

User-4 am 31.10.06 22:21

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

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

User-2 am 01.11.06 01:41

Quote
Original von xyz-52
array_flip() ist schneller (als xyz-190s 1. Lösung) ;)


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

User-3 am 01.11.06 13:12

Quote
Original von xyz-190
[quote]Original von xyz-52
array_flip() ist schneller (als xyz-190s 1. Lösung) ;)


Aber auch nur, wenn die Werte alles eindeutige Zahlen ohne Lücken sind ;)[/quote]
was es laut seiner Beschreibung ja sind;)

User-2 am 01.11.06 14:35

Quote
Original von xyz-52
[quote]Original von xyz-190
[quote]Original von xyz-52
array_flip() ist schneller (als xyz-190s 1. Lösung) ;)


Aber auch nur, wenn die Werte alles eindeutige Zahlen ohne Lücken sind ;)[/quote]
was es laut seiner Beschreibung ja sind;)[/quote]

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

User-1 am 01.11.06 15:46

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

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

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt