2010-02-18 23 views

risposta

18

È possibile utilizzare sprintf per formattare il numero su una stringa o printf per formattarlo e visualizzare immediatamente la stringa.

Dovresti specificare un formato come questo, direi: %02d:

  • imbottitura identificatore = 0
  • width = identificatore 2
  • intero = d

(Anche se si dispone di ciò che si desidera qui, è necessario leggere la pagina di manuale di sprintf: ci sono un sacco di possibilità, a seconda del tipo di dati che si sta utilizzando, e il tipo di output formattazione che si desidera)


E, come una demo, se temp.php contiene questa porzione di codice:

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

Calling vi 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 per spiegare il formato. – Skilldrick

5

È possibile utilizzare str_pad().

str_pad - Riempie una stringa ad una certa lunghezza con un'altra stringa

Questa funzione restituisce la stringa di input imbottito a sinistra, a destra, o entrambi i lati alla lunghezza di imbottitura specificata. Se l'argomento facoltativo pad_string non viene fornito, l'input viene riempito con spazi, altrimenti viene riempito con caratteri da pad_string fino al limite.

-1

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

So che ci sono risposte molto migliori di questo qui, ma mi though't avrei lasciato per mostrare c'è più di un modo per scuoiare un gatto ...

+0

Questo ha bisogno di un altro ramo. Altrimenti i numeri> 10 non vengono stampati affatto. – VolkerK

+0

Lo so. Ho pensato che Andrew sarebbe stato in grado di risolvere il resto ... È solo un frammento. – Skilldrick

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

Questo ti darebbe 010, 011, 012, ecc. –

+0

:-) hai ragione! Aggiornato. – Dave

+1

usa ctrl + k per contrassegnare i blocchi di codice (o rientra il codice manualmente con 4 spazi) – VolkerK

4

La vecchia maniera: $str = sprintf("%02.2d", $number); o utilizzare printf("%02.2d\n", $number); per stampare immediatamente.

0

metodo rapido:

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

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

+0

Sono stato sottovalutato perché? – Urda

+0

Perché è inefficiente. –

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

Consente di semplificare. Usa str_pad

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

produce 000006

0

echo ($ numero < 10)? (0. numero $): numero $;

Problemi correlati