Stefan Hermann: führende Nullen hinzufügen

Hi,

ich habe einen Code geschrieben, der mir automatisch eine Auswahlliste mit den Monatstagen erstellt, den aktuellen auswählt und bei den Tagen "1-9" noch eine Null vor die Zahl steht.

echo "<select name="day">";
  for($temp = 1; $temp < 32; $temp++)
  {
    echo "<option";
    if($temp == date(d)){echo " selected";}
    if($temp < 10) {echo ">0$temp";}
    else {echo ">$temp";}
    echo "</option>";
  }

Ist es irgendwie einfacher möglich(vielleicht mit einem PHP-Befehl) die Null automatisch hinzuzufügen?

Stefan

  1. gudn tach Stefan!

    Ist es irgendwie einfacher möglich(vielleicht mit einem PHP-Befehl) die Null automatisch hinzuzufügen?

    ja, z.b. mit sprintf

    prost
    seth

    1. echo $begrueszung;

      Ist es irgendwie einfacher möglich(vielleicht mit einem PHP-Befehl) die Null automatisch hinzuzufügen?

      ja, z.b. mit sprintf

      oder auch mit str_pad()

      echo "$verabschiedung $name";

      1. gudn tach $adressat!

        sprintf

        oder auch mit str_pad()

        soll aber viel langsamer sein, behaupten die dortigen kommentatoren.

        prost
        seth

        1. echo $begrueszung;

          sprintf

          oder auch mit str_pad()

          soll aber viel langsamer sein, behaupten die dortigen kommentatoren.

          In der Tat konnte ich das nachvollziehen.

          Allerdings arbeitete der Tester dort mit einer Messschleife von 10.000.000 (in Worten: 10 Millionen) Durchläufen und kommt damit in zweistellige Sekundenbereiche und Differenzen von durchschnittlich 30% mehr Laufzeit für str_pad().

          Das heißt aber auch, dass diese 10 Millionen Werte irgendwohin ausgegeben werden müssen. (Mir fällt sonst kein sinnvoller Verwendungszweck ein, mehrere Werte auf gleiche Länge zu formatieren).
          10 Millionen Werte mit mindestens 2 Stellen (in der Praxis werden das wohl eher mehr Stellen sein) ergeben schlappe 20 MB Zeichen. Und die übertragen sich auch nicht in Null Komma Nichts...

          Praktisch bedeutet das für mich, dass die Differenz vernachlässigbar gering ist.

          echo "$verabschiedung $name";

          1. gudn tach $adressat!

            Praktisch bedeutet das für mich, dass die Differenz vernachlässigbar gering ist.

            wir wissen beide nicht, wo der kram eingesetzt werden soll.
            ich finde, dass man bei solch einer wahl grundsaetzlich die funktion verwenden sollte, die schneller ist. man weiss ja nie, wo der code mal spaeter noch eingesetzt werden wird.

            (ja, ich schreibe auch ++i statt i++, wenn moeglich... ;-) )

            prost
            seth

    2. Danke, hat geklappt!