Anfangswert eines Array festlegen

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

  • Anfangswert eines Array festlegen

    Hallo,

    wie kann ich den Anfangswert (also den Key) eines Array in einer While-Schleife festlegen?

    PHP-Code:
    // das array soll nicht mit 0, sonder mit 1 beginnen...
    while($row[] = mysql_fetch_assoc($result)); 
    Beste Dank!

    Gruß Björn
    » http://www.htaccess-generator.com

  • #2
    z.b. so:


    PHP-Code:
    $i=1;
     while(
    $row mysql_fetch_assoc($result)) {
       
    $all[$i]  = $row;
       
    $i++;
     } 
    aber wozu soll das gut sein?

    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
    sondern mit den Augen das Manual zu lesen.

    Kommentar


    • #3
      gibt es keine bessere möglichkeit den anfangswert festzulegen? muss ich immer zuerst das array auswerten und wieder neu zusammensetzen?

      @xManuX: das array wird an ein smarty warenkorb-template übergeben. ich wolle den key für die postennummer im warenkorb verwenden und die fängt nun mal mit 1 an. ich weiß zwar das man mit smarty auch einen zähler setzen kann, aber ich dachte das es so einfacher ist. wenn das aber nicht gehen sollte, dann verwende ich halt den counter von smarty.
      » http://www.htaccess-generator.com

      Kommentar


      • #4
        Original geschrieben von bweichel
        gibt es keine bessere möglichkeit den anfangswert festzulegen? muss ich immer zuerst das array auswerten und wieder neu zusammensetzen?
        Du kannst den Code natürlich entsprechend verkürzen:
        PHP-Code:
        $i=1;
         while(
        $row[$i] = mysql_fetch_assoc($result)) {
           
        $i++;
         } 
        Oder auch gleich
        PHP-Code:
        $i=1;
         while(
        $row[$i++] = mysql_fetch_assoc($result)) {
         } 
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Re: Anfangswert eines Array festlegen

          Den Iterator braucht man nicht:

          PHP-Code:
          $row = array(null);
          while(
          $row[] = mysql_fetch_assoc($result)); 

          Kommentar


          • #6
            @saraneus: mit deinem Beispiel, hat sich mein Problem aber nicht gelöst... vielleicht ließt du dir die frage nochmal genau durch **nett gemeint** ... oder irre ich mich ;-)...
            » http://www.htaccess-generator.com

            Kommentar


            • #7
              oO

              Du baust ein zweidimensionales Array mit Datensätzen aus deiner DB-Anfrage auf. Du willst, dass der Index der ersten Dimension mit 1 beginnt:

              $bla[0] = nix
              $bla[1] = mysql_fetch_assoc(..);
              $bla[2] = mysql_fetch_assoc(..);

              Das entnehme ich deiner Formulierung. Und genau das bewerkstelligt mein Vorschlag. Hast du ihn ausprobiert?

              Kommentar


              • #8
                Original geschrieben von saraneus
                Du willst, dass der Index der ersten Dimension mit 1 beginnt: [...]
                Und genau das bewerkstelligt mein Vorschlag.
                Nein, nicht ganz - dein Array beginnt nach wie vor mit dem Index 0, nur das in diesem Arrayelement nichts drinsteht.
                Das ist, wie du zugeben wirst, etwas anderes, als ob es gar keinen Array-Index 0 gibt.
                Und je nachdem, wie die weitere Verabreitungslogik aussieht, könnte ein "leerer" nullter Eintrag durchaus ein Problem darstellen. (Wobei man da schon sagen muss, dass es reichlich dämlich von Smarty ist, an dieser Stelle von der in der Programmierung üblichen bei Null beginnenden Zählweise abzuweichen ...)
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  natürlich habe dein vorschlag ausprobiert, aber das ist ja voll geknaupt. was bringt es mir wenn ich später doch ein array mit 0 habe, dort aber nur der Wert leer ist. dann habe ich doch nichts gewonnen. ich will genau die gleiche anzahl array`s haben, wie auch in der datenbank stehen. jedoch nur, dass der key nicht bei null anfängt, sondern bei 1. bei deiner version habe ich doch ein array mehr.
                  » http://www.htaccess-generator.com

                  Kommentar


                  • #10
                    Jaja, ich weiß, was ihr meint :-) Da aber gesagt wurde, dass Smarty mit dem Index arbeitet, um das Array zu benutzen, ging ich davon aus, dass ein "0ter" Eintrag nicht störend ist. Da anscheinend doch, geb ich Smarty eine schlechte Note...

                    Den Startwert != 0 würde ich als literalen Index bezeichnen. Als numerischer macht er keinen Sinn.

                    Kommentar


                    • #11
                      ich behaupte einfach mal, dass smarty "unschuldig" ist, und das problem an der art der und weise in der handhabung liegt...

                      Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                      sondern mit den Augen das Manual zu lesen.

                      Kommentar

                      Lädt...
                      X