উত্তর:
প্রথমত, আপনার বিবরণ বিভ্রান্তিকর। Doubleএকটি ভাসমান পয়েন্ট ডেটা টাইপ। আপনি সম্ভবত স্ট্রিংয়ে শীর্ষস্থানীয় শূন্যগুলির সাথে আপনার অঙ্কগুলি প্যাড করতে চান। নিম্নলিখিত কোডটি তা করে:
$s = sprintf('%02d', $digit);
আরও তথ্যের জন্য, এর ডকুমেন্টেশন পড়ুন sprintf।
sprintf । পূর্ণসংখ্যার বিন্যাসটি পরীক্ষা করুন , বিশেষ করে অষ্টাল সংখ্যাগুলির বিভাগটি।
এছাড়াও আছে str_pad
<?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_"
?>
Str_pad ব্যবহার করে সমাধান :
str_pad($digit,2,'0',STR_PAD_LEFT);
পিএইচপি 5.3 এ বেঞ্চমার্ক
আরআর_প্যাডের ফলাফল: 0.286863088608
ফলাফল স্প্রিন্টফ: 0.234171152115
কোড:
$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";
str_padভারী কার্য সম্পাদন প্যাডিংয়ের দৈর্ঘ্যের উপর নির্ভর করে। আরও ধারাবাহিক গতির জন্য আপনি str_repeat ব্যবহার করতে পারেন ।
$padded_string = str_repeat("0", $length-strlen($number)) . $number;
আরও ভাল পারফরম্যান্সের জন্য সংখ্যার স্ট্রিং মান ব্যবহার করুন।
$number = strval(123);
পিএইচপি 7.4 এ পরীক্ষিত
str_repeat: 0.086055040359497 (number: 123, padding: 1)
str_repeat: 0.085798978805542 (number: 123, padding: 3)
str_repeat: 0.085641145706177 (number: 123, padding: 10)
str_repeat: 0.091305017471313 (number: 123, padding: 100)
str_pad: 0.086184978485107 (number: 123, padding: 1)
str_pad: 0.096981048583984 (number: 123, padding: 3)
str_pad: 0.14874792098999 (number: 123, padding: 10)
str_pad: 0.85979700088501 (number: 123, padding: 100)
digitত্রুটি হিসাবে পূর্ণসংখ্যার মান হিসাবে পাস হয় , যদি সেই সময়ের স্ট্রিং হিসাবে পাস হয় তবে সমস্যা নেই