kostenloser Webspace werbefrei: lima-city


PHP Problem(leicht)

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    boos

    boos hat kostenlosen Webspace.

    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&uuml;r eine Farbe?<br>".$farbe[1];
    echo $farbe[0][1]."Was ist das denn f&uuml;r eine Farbe?<br>".$farbe[1];
    echo $farbe[0][2]."Was ist das denn f&uuml;r eine Farbe?<br>".$farbe[1];
    echo $farbe[0][3]."Was ist das denn f&uuml;r eine Farbe?<br>".$farbe[1];
    echo $farbe[0][4]."Was ist das denn f&uuml;r eine Farbe?<br>".$farbe[1];


    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. aldistammkunde

    Kostenloser Webspace von aldistammkunde, auf Homepage erstellen warten

    aldistammkunde hat kostenlosen Webspace.

    hm,
    ich denke mal, dass php da nicht wie zB java bei der zuweisung ne referenz auf das array an $farbe[0] zuweist, sondern quasi ne neues kopie des arrays. du müsstest also das
    shuffle($farben);
    vor das
    $farbe[0] = $farben;
    setzen
  4. 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&uuml;r eine Farbe?<br></font>";
    
    
    ?>


    Edit: Mist, zu spät!

    Beitrag zuletzt geändert: 12.3.2009 16:24:43 von cookies
  5. Autor dieses Themas

    boos

    boos hat kostenlosen Webspace.

    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.
  6. Wenn du einen "Verweis" willst musst du eine Referenz benutzen.
    Damit wäre das ganze sogar recht elegant zu lösen.
  7. 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&uuml;r eine Farbe?<br>", $i);
    ?>
  8. Autor dieses Themas

    boos

    boos hat kostenlosen Webspace.

    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.
  9. t*****b

    <?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>";
        }
    ?>


  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!