Zeilen zufällig ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeilen zufällig ausgeben

    Hallo,

    ich habe eine lange Liste an Fotos in einer php Datei gespeichert:

    Code:
    <a title="Foto1" href="1.jpg"></a>
    <a title="Foto2" href="2.jpg"></a>
    <a title="Foto3" href="3.jpg"></a>
    Jetzt möchte ich, daß diese Zeilen immer zufällig ausgegeben werden,
    nicht immer in derselben Reihenfolge.
    Also so zb.:

    Code:
    <a title="Foto2" href="2.jpg"></a>
    <a title="Foto3" href="3.jpg"></a>
    <a title="Foto1" href="1.jpg"></a>

    Wie kann ich das lösen?
    Danke für die Hilfe.

  • #2
    1. In ein Array stopfen.
    2. shuffle() anwenden
    3. ausgeben
    Wir werden alle sterben

    Kommentar


    • #3
      Hallo,

      habe das jetzt so gelöst:

      Code:
      <?php
      
      $my_array = array(
      '"foto1.jpg",',
      '"foto2.jpg",',
      '"foto3.jpg",',
      '"foto4.jpg",',
      
      
      );
              for ($i=0; $i<=4; $i++)
              {
                  $random = array_rand($my_array);
                  $gemisch .= $my_array[$random] . "\r\n";
              }
              echo $gemisch;
      ?>
      Aber so kommt mir eine Zeile oft mehrmals raus oder manche Zeilen gar nicht.
      Was ist da falsch?

      Kommentar


      • #4
        shuffle()
        Wir werden alle sterben

        Kommentar


        • #5
          hm,
          kann mir das bitte jemand genauer erklären?
          Ich verstehe nicht, warum mir bei meinem Code manche Zeilen doppelt ausgegeben werden.

          Danke für die Hilfe!

          Kommentar


          • #6
            Ach, komm...
            Nach fast 70 Postings in einem PHP Forum solltest du doch schon geschnallt haben:
            1. wie Arrays funktionieren
            2. wie das Handbuch zu lesen ist
            3. wo das Handbuch zu finden ist
            Wir werden alle sterben

            Kommentar


            • #7
              Ach komm, bin blugier Newbie!
              Wundere mich ja, dass mein selbst-zusammengebastelter Code irgendwie funktioniert

              Da gibt es doch sicher eine bessere / elegantere Lösung oder?

              Irgendjemand wird mir wohl helfen können - bitte!

              Kommentar


              • #8
                Zitat von werny Beitrag anzeigen
                Ach komm, bin blugier Newbie!
                Wundere mich ja, dass mein selbst-zusammengebastelter Code irgendwie funktioniert

                Da gibt es doch sicher eine bessere / elegantere Lösung oder?

                Irgendjemand wird mir wohl helfen können - bitte!
                Hmm...
                Ein Newbie, welcher seit 7 Jahren dabei ist.
                Und immer noch nicht in der Lage ist shuffle() einzusetzen....
                Unglaublich.

                Auch wenn es sich hart anhört, aber ich glaube, du hast dir das falsche Hobby ausgesucht.


                PHP-Code:
                <?php
                error_reporting
                (-1);
                ini_set('display_errors'TRUE);
                 

                $array  range(1,20);
                $format '<a title="Foto%1$d" href="%1$d.jpg">Foto%1$d</a><br>';
                shuffle($array);
                foreach (
                $array as $valueprintf($format,$value);
                Wir werden alle sterben

                Kommentar


                • #9
                  Hier ist eine einfache Lösung mit einem Array und Kommentaren:

                  PHP-Code:
                  <?php
                  // Anzahl Eintraege
                  $eintraege 3;
                   
                  // Pool fuer Fotos
                  $foto = array('1' => '<a title="Foto1" href="1.jpg"></a>',
                                
                  '2' => '<a title="Foto2" href="2.jpg"></a>',
                                
                  '3' => '<a title="Foto3" href="3.jpg"></a>');
                   
                  // Zufallszahl
                  $zufallszahl rand (1,$eintraege);
                   
                  // Ausgabe
                  print $foto[$zufallszahl];
                  ?>
                  Du musst einfach die Anzahl der Einträge erhöhen und jeden neuen Eintrag mit einer nächsthöheren Nummer versehen, dann werden die einzelnen Einträge zufällig mit "$foto[$zufallszahl];" ausgegeben.
                  Mein [COLOR=#0066cc]Internetmarketing Blog[/COLOR]
                  Professionelle [COLOR=#800080]PHP Newsletter Software[/COLOR]
                  Das [COLOR=#0066cc]Newsletter erstellen[/COLOR] Einmaleins für Einsteiger

                  Kommentar


                  • #10
                    Zitat von Scriptex Beitrag anzeigen
                    Hier ist eine einfache Lösung mit einem Array und Kommentaren:

                    PHP-Code:
                    <?php
                    // Anzahl Eintraege
                    $eintraege 3;
                     
                    // Pool fuer Fotos
                    $foto = array('1' => '<a title="Foto1" href="1.jpg"></a>',
                                  
                    '2' => '<a title="Foto2" href="2.jpg"></a>',
                                  
                    '3' => '<a title="Foto3" href="3.jpg"></a>');
                     
                    // Zufallszahl
                    $zufallszahl rand (1,$eintraege);


                    // Ausgabe
                    print $foto[$zufallszahl];
                    ?>
                    Du musst einfach die Anzahl der Einträge erhöhen und jeden neuen Eintrag mit einer nächsthöheren Nummer versehen, dann werden die einzelnen Einträge zufällig mit "$foto[$zufallszahl];" ausgegeben.
                    Und?
                    Wie verhinderst du Wiederholungen?
                    Wie sorgst du dafür, dass alle ausgegeben werden?
                    Wir werden alle sterben

                    Kommentar


                    • #11
                      ??

                      Oh Mann o Mann!

                      ich möchte nicht das EINE zufällige Zeile aus dem Array ausgeben wird,
                      sondern ALLE Zeilen geshuffled ausgegeben werden.

                      also z.B.

                      foto2.jpg
                      foto3.jpg
                      foto1.jpg
                      foto5.jpg
                      foto.4.jpg

                      Kommentar


                      • #12
                        Du wurdest jetzt mehrfach auf eine sinnvolle funktioniernde Lösung hingewiesen. Anstatt diese zu verfolgen, vergreifst du dich lieber hier im Ton, der versucht dir zu helfen?

                        PS: Dass der Code nicht so funktioniert wie es "gefordert" ist, hatte Combie schon 3 Stunden vorher gepostet.

                        Kommentar


                        • #13
                          Meine Lösung sollte nur als Anregung dienen. Das wirst du nicht einfach mit ein paar Zeilen Code lösen können, damit immer ein anderes Foto ausgegeben wird. Um das zu realisieren, muss man die Ausgabe zwischenspeichern und dann prüfen, was zuletzt kam, um keinen wiederholten Wert auszugeben.

                          PS. Der Ton einiger User gefällt mir auch nicht. Meckert nicht, macht es besser oder liefert zumindest eine bessere Lösung
                          Mein [COLOR=#0066cc]Internetmarketing Blog[/COLOR]
                          Professionelle [COLOR=#800080]PHP Newsletter Software[/COLOR]
                          Das [COLOR=#0066cc]Newsletter erstellen[/COLOR] Einmaleins für Einsteiger

                          Kommentar


                          • #14
                            macht es besser oder liefert zumindest eine bessere Lösung
                            *done*
                            Wir werden alle sterben

                            Kommentar

                            Lädt...
                            X