Ben (01-09) tek rakamları (1-9) döküm gerekir. Ben bir yol düşünüyorum ama onun büyük ve çirkin ve hantal. Olabilir Bazı kısa yolu olmalı eminim. Herhangi Öneriler
Her şeyden önce, sizin açıklama yanıltıcıdır. Double
kayan noktalı veri türüdür. Sen muhtemelen bir dize önlerine ile ped basamak istiyorum. Aşağıdaki kod yapar:
$s = sprintf("%02d", $digit);
Daha fazla bilgi için, sprintf
a> belgelerine bakın.
str_pad Orada da
<?php
$input = "Alien";
echo str_pad($input, 10); // produces "Alien "
echo str_pad($input, 10, "-=", STR_PAD_LEFT); // produces "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH); // produces "__Alien___"
echo str_pad($input, 6 , "___"); // produces "Alien_"
?>
Kullanılarak çözeltisi str_pad,
str_pad($digit,2,'0',STR_PAD_LEFT);
Php 5.3 Benchmark
Sonuç str_pad: ,286863088608
Sonuç sprintf: ,234171152115
Kod:
$start = microtime(true);
for ($i=0;$i<100000;$i++) {
str_pad(9,2,'0',STR_PAD_LEFT);
str_pad(15,2,'0',STR_PAD_LEFT);
str_pad(100,2,'0',STR_PAD_LEFT);
}
$end = microtime(true);
echo "Result str_pad : ",($end-$start),"\n";
$start = microtime(true);
for ($i=0;$i<100000;$i++) {
sprintf("%02d", 9);
sprintf("%02d", 15);
sprintf("%02d", 100);
}
$end = microtime(true);
echo "Result sprintf : ",($end-$start),"\n";