Variablen aus Array ausschließen
Klaus
- php
Hallo,
Ich habe ein Array gebildet und daraus einen zufälligen Wert herausgelesen:
$felder = array("Hund", "Katze", "Maus"
$bauer1 = $felder[rand(0,2)];
Jetzt soll ein weiterer Wert zufällig aus dem Array für $bauer2 ausgewählt werden, allerdings darf der Wert, den $bauer1 erhalten hat, nicht mehr zur Auswahl stehen.
Wie geht das ?
Natürlich heißt es
$felder = array("Hund", "Katze", "Maus");
$bauer1 = $felder[rand(0,2)];
Hello,
$felder = array("Hund", "Katze", "Maus");
$bauer1 = $felder[rand(0,2)];
besser:
$felder = array("Hund", "Katze", "Maus");
$index = rand(0,2);
$bauer[] = $felder[$index];
$unset($felder[$index]);
$index = rand(0,2);
$bauer[] = $felder[$index];
$unset($felder[$index]);
usw.
Liebe Grüße aus dem Cyberspace
Tom vom Berg
Hello,
$felder = array("Hund", "Katze", "Maus");
$bauer1 = $felder[rand(0,2)];besser:
$felder = array("Hund", "Katze", "Maus");
$index = rand(0,count($felder -1)); ## solange das Array überhaut noch Elemente hat
$bauer[] = $felder[$index];
$unset($felder[$index]);$index = rand(0,count($felder -1)2);
$bauer[] = $felder[$index];
$unset($felder[$index]);
Wenn es nicht auf die Reihenfolge der Elemente im Array ankommt:
$felder = array("Hund", "Katze", "Maus");
shuffle($felder);
$zufall[] = pop($felder);
Liebe Grüße aus dem Cyberspace
Tom vom Berg
Das funktioniert bei mir nicht. Ich bekomme immer den fehler:
Fatal error: Call to undefined function: ()
Ich habe folgendes gemacht:
$index = rand(0,2);
$bauer1 = $felder[$index];
$unset($felder[$index]);
$index = rand(0,2);
$bauer2 = $felder[$index];
$unset($felder[$index]);
Hi,
Das funktioniert bei mir nicht. Ich bekomme immer den fehler:
warum wendest Du Codes an, die Du nicht verstehst? Recherchiere das, was Du an Informationen erhältst.
@Tom: Wann lernst Du endlich, dass es fast immer *schädlich* ist, fertige Codes als Antwort zu posten?
Cheatah
Hello,
Das funktioniert bei mir nicht. Ich bekomme immer den fehler:
warum wendest Du Codes an, die Du nicht verstehst? Recherchiere das, was Du an Informationen erhältst.
@Tom: Wann lernst Du endlich, dass es fast immer *schädlich* ist, fertige Codes als Antwort zu posten?
Wann lernst Du endlich, dass wir zwar gernen zusammen einen Whiskey trinken können, ich Dich aber niemals nicht bevormunden möchte? :-)
Liebe Grüße aus dem Cyberspace
Tom vom Berg
Hi,
Wann lernst Du endlich, dass wir zwar gernen zusammen einen Whiskey trinken können, ich Dich aber niemals nicht bevormunden möchte? :-)
wenn Du aus dem Wort "Whiskey" noch das "e" streichst, geht das in Ordnung. Bei der Gelegenheit können wir es dann auch zu unterlassen vermeiden, nicht über das Fehlen mehrfacher Verneinungen nicht zu schweigen. Oder so ähnlich ... :-)
Cheatah
Hello,
Wann lernst Du endlich, dass wir zwar gernen zusammen einen Whiskey trinken können, ich Dich aber niemals nicht bevormunden möchte? :-)
wenn Du aus dem Wort "Whiskey" noch das "e" streichst, geht das in Ordnung. Bei der Gelegenheit können wir es dann auch zu unterlassen vermeiden, nicht über das Fehlen mehrfacher Verneinungen nicht zu schweigen. Oder so ähnlich ... :-)
Ich hatte es extra eingebaut, damit wir bei einm guten Single-Malt dann wenigstens ein Gesprächsthema haben :-)
Liebe Grüße aus dem Cyberspace
Tom vom Berg
Hi,
Ich hatte es extra eingebaut, damit wir bei einm guten Single-Malt dann wenigstens ein Gesprächsthema haben :-)
gut, dann schlage ich vor, wir beginnen mit einem Taliskr oder einem Glenlivt ;-)
Cheatah
Hello,
Das funktioniert bei mir nicht. Ich bekomme immer den fehler:
Fatal error: Call to undefined function: ()
Ich habe folgendes gemacht:
$index = rand(0,2);
$bauer1 = $felder[$index];
unset($felder[$index]);
$index = rand(0,2);
$bauer2 = $felder[$index];
unset($felder[$index]);
War wohl ein doofer Tippfehler von mir.
Aber Du solltet die Grenzen des Arrays nicht überschreiten und außerdem hat dieser mein erster
Liebe Grüße aus dem Cyberspace
Tom vom Berg
![](http://selfhtml.bitworks.de/Virencheck.gif)
--
Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>
Hello,
Aber Du solltet die Grenzen des Arrays nicht überschreiten und außerdem hat dieser mein erster Code noch ein weiteres Problem. Wenn Du üner den numersichen Index des Arrays zugreifst und dann ein Element daraus löschst, wird der numerische Index nicht neu aufgebaut und daher ein "Loch".
Du müsstest also dann auch noch das Array reorganisieren lassen
-> array_slice() und array_splice() sind dafür geeinget.
Liebe Grüße aus dem Cyberspace
Tom vom Berg
Ich habe jetzt folgendes probiert:
$bauer1 = $felder[rand(0,2)];
$felder2=array_slice ($felder, '$bauer1');
$bauer2 = $felder2[rand(0,1)];
Aber der Wert wird immer noch zur Auswahl gestellt.
Hi,
$felder2=array_slice ($felder, '$bauer1');
wo hast Du die Information her, der String '$bauer1' sei vom Typ int?
Klaus, Du musst dringend lernen, die Dokumentation zu lesen. Aus diesem Grund verlinke ich sie auch allgemein.
Cheatah