2010-02-18 18 views

Respuesta

18

Puede usar sprintf para formatear su número en una cadena o printf para formatearlo y mostrar la cadena inmediatamente.

Habría que especificar un formato como este, yo diría: %02d:

  • acolchado especificador = 0
  • especificador width = 2
  • número entero = d

(Incluso si tiene lo que desea aquí, debe leer la página del manual de sprintf: hay una gran cantidad de posibilidades, dependiendo del tipo de datos que está utilizando y el tipo de salida de formatear desea)


Y, como una demostración, si temp.php contiene esta porción de código:

<?php 
for ($number = 1; $number <= 16; $number++) { 
    printf("%02d\n", $number); 
} 

llamadas que le dará:

C:\dev\tests\temp>php temp.php 
01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
+2

+1 para explicar el formato. – Skilldrick

5

Puede utilizar str_pad().

str_pad - Rellena una cadena a una cierta longitud con otra cadena

Esta función devuelve la cadena de entrada rellenada por la izquierda, la derecha, o ambos lados a la longitud de relleno especificada. Si no se proporciona el argumento opcional pad_string, la entrada se rellena con espacios, de lo contrario se rellena con caracteres de pad_string hasta el límite.

-1

if($number < 10) echo '0' . $number;

Sé que hay muchos mejores respuestas que esta aquí, pero though't Me dejo para mostrar que hay más de una manera de pelar un gato ...

+0

Esto necesita una rama else. De lo contrario, los números> 10 no se imprimen en absoluto. – VolkerK

+0

Lo sé. Supuse que Andrew sería capaz de resolver el resto ... Solo tenía que ser un fragmento. – Skilldrick

0
<?php 
    for ($number = 1; $number <= 16; $number++) 
    { 
    if($number<10) 
     echo '0'; 
    echo $number . "<br>"; 
    } 
?> 
+0

Eso le daría 010, 011, 012, etc. –

+0

:-) ¡usted es correcto! Actualizado. – Dave

+1

por favor use ctrl + k para marcar bloques de código (o sangrar el código manualmente con 4 espacios) – VolkerK

4

La antigua usanza: $str = sprintf("%02.2d", $number); o uso printf("%02.2d\n", $number); para imprimir inmediatamente.

0

método rápido:

<?php 
for ($number = 1; $number <= 16; $number++) 
{  
    if($number < 10) 
     echo "0".$number."\n"; 
    else 
     echo $number."\n"; 
} 
?> 
+0

Snap :) ........ – Skilldrick

+0

Me van a votar porque? – Urda

+0

Porque es ineficiente. –

2
for ($number = 1; $number <= 16; $number++) { 
    echo sprintf("%02d", $number) . "<br>"; 
} 
0

Permite que sea sencillo. Usar str_pad

echo str_pad (1, 6, "0");

produce 000006

0

eco ($ < número 10)? (0. $ Number): $ number;

Cuestiones relacionadas