Willkommen in der Webstatt Zum Webstatt Blog und Stories
BNightSpeeder 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?
sili sili am 31.10.06 18:18

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

der_nic der_nic am 31.10.06 21:47

array_flip() ist schneller (als silis 1. Lösung) ;)
aber array_rand() ist wohl die Bestelösung

Dustwolf Dustwolf 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!

der_nic der_nic am 31.10.06 22:06

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

gibt nichts aus... :rolleyes:

Dustwolf Dustwolf 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! ;)

sili sili am 01.11.06 01:41

Quote
Original von der_nic
array_flip() ist schneller (als silis 1. Lösung) ;)


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

der_nic der_nic am 01.11.06 13:12

Quote
Original von sili
[quote]Original von der_nic
array_flip() ist schneller (als silis 1. Lösung) ;)


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

sili sili am 01.11.06 14:35

Quote
Original von der_nic
[quote]Original von sili
[quote]Original von der_nic
array_flip() ist schneller (als silis 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

BNightSpeeder 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