PHP Problem(leicht)
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
arbeit
array
benutzen
code
eins
farbe
gleiche reihenfolge
global farben
inhalt
komische sache
kopie
machen
mist
quellcode
referenz
setzen
shuffle
text
verweis
zuweisung
-
also ich habe mir das so vorgestellt, dass mir php mit einem Array viel arbeit ersparen kann:
Und zwar habe ich in einem array mehrere Farben gespeichert ( mit font color=""). Jetzt habe ich versucht die Farben mit Shuffle durcheinander zu bringen, damit ich immer weider neue Farben habe, wenn ich auf die Seite gehe ... klappt aber nicht die farben haben die gleiche Reihenfolge, dabei sollte Shuffle die verwirbeln :( . Hier der Quellcode
<?php
$farben[] = "<font color=\"red\">";
$farben[] = "<font color=\"blue\">";
$farben[] = "<font color=\"yellow\">";
$farben[] = "<font color=\"brown\">";
$farben[] = "<font color=\"green\">";
$farbe[0] = $farben;
$farbe[1] = "</font>";
shuffle($farben);
echo $farbe[0][0]."Was ist das denn für eine Farbe?<br>".$farbe[1];
echo $farbe[0][1]."Was ist das denn für eine Farbe?<br>".$farbe[1];
echo $farbe[0][2]."Was ist das denn für eine Farbe?<br>".$farbe[1];
echo $farbe[0][3]."Was ist das denn für eine Farbe?<br>".$farbe[1];
echo $farbe[0][4]."Was ist das denn für eine Farbe?<br>".$farbe[1];
?> -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also mit deiner Variante weiß ich auch nicht, wie das gehen soll, hab aber mal einen anderen Code gebastelt. (is getestet!)
<?php $farbe1 = "red"; $farbe2 = "blue"; $farbe3 = "yellow"; $farbe4 = "brown"; $farbe5 = "green"; $farbnr = rand(1, 5); if ($farbnr=='1') { $farbe = $farbe1; } elseif ($farbnr=='2') { $farbe = $farbe2; } elseif ($farbnr=='3') { $farbe = $farbe3; } elseif ($farbnr=='4') { $farbe = $farbe4; } elseif ($farbnr=='5') { $farbe = $farbe5; }; echo "<font color=\"$farbe\"> Was ist das denn für eine Farbe?<br></font>"; ?>
Edit: Mist, zu spät!
Beitrag zuletzt geändert: 12.3.2009 16:24:43 von cookies -
So klappt es @aldistammkunde
Heisst es Php macht quasi 2 $farben, die er selber unterscheidet ... eins das ich definiert habe und eins das im Array $farbe[0] lagert ?
Komische sache ich dachte, der Verweist quasi nur auf $farben.
Danke für die Antworten. -
Wenn du einen "Verweis" willst musst du eine Referenz benutzen.
Damit wäre das ganze sogar recht elegant zu lösen. -
Du hast die Inhalte des Arrays $farbe in $farbe[0] gespeichert. geshufflet hast du aber $farbe anstatt $farbe[0].. Jetz wo du das shuffle vorne hingeschrieben hast läuft das natürlich besser.
So sähe es schöner aus vom Code her, ist für so ein kleines Script aber eigentlich unnötig :D
<?php $farben = array("red","blue","yellow","brown","green"); shuffle($farben); function ColorText($text, $colornr) { global $farben; echo "<font color=\"".$farben[$colornr]."\">".$text."</font>"; } for($i = 0; $i < 5; $i++) ColorText("Was ist das denn für eine Farbe?<br>", $i); ?>
-
Habe mir den Quellcode nochmal angeguckt und noch 2 "Methoden" gesehen , wie das klappt.
Und zwar das einfachste sicherlich ... bevor man sagt, dass $farben ins Array $farbe[0] soll, einfach shuffel($farben) eingeben.Oder man referenziert das Array $farben, d.h. alles was du in $farben oder in $farbe[0] = &$farben änderst bezieht sich dann immer auf "beide" Arrays.
Was die schönere Lösung ist , denke mal das shuffle() bevor man das Array $farben ind $farbe steckt. -
<?php $farben = array("red","blue","yellow","brown","green"); shuffle($farben); for($i = 0; $i < count($farben); $i++) { echo "<p style=\"color:".$farben[$i]."\">Was ist das denn für eine Farbe?</p>"; } ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage