जवाबों:
$str = ltrim($str, '0');
(string)((int)"00000234892839")
(int) "00009384783473"(यादृच्छिक संख्या) की कोशिश की और मेरा परिणाम 2147483647 था। अगर मैंने इसे एक फ्लोट के रूप में रखा, लेकिन यह ठीक काम करने लगता है। अजीब
पता नहीं लोग इतनी सरल बात को प्राप्त करने के लिए इतने जटिल तरीकों का उपयोग क्यों कर रहे हैं! और रेगेक्स? वाह!
यहां आपको सबसे आसान और सबसे आसान तरीका है (जैसा कि यहां बताया: https://nabtron.com/kiss-code/ ):
$a = '000000000000001';
$a += 0;
echo $a; // will output 1
एक अन्य सुझाव के समान, वास्तविक शून्य को नहीं छोड़ना चाहिए:
if (ltrim($str, '0') != '') {
$str = ltrim($str, '0');
} else {
$str = '0';
}
या जैसा कि सुझाव दिया गया था (PHP 5.3 के रूप में), शॉर्टहैंड टर्नरी ऑपरेटर का उपयोग किया जा सकता है:
$str = ltrim($str, '0') ?: '0';
$str = ltrim($str, '0') ?: '0'; - कोई अनावश्यक ट्रिम कॉल नहीं।
आप अपने चर में "+" जोड़ सकते हैं,
उदाहरण :
$numString = "0000001123000";
echo +$numString;
रेगेक्स पहले से ही प्रस्तावित था, लेकिन सही ढंग से नहीं:
<?php
$number = '00000004523423400023402340240';
$withoutLeadingZeroes = preg_replace('/^0+/', '', $number)
echo $withoutLeadingZeroes;
?>
आउटपुट तब है:
4523423400023402340240
रेगेक्स पर पृष्ठभूमि: ^स्ट्रिंग की शुरुआत के +संकेत और संकेत पूर्ववर्ती संकेत के अधिक या कोई भी संकेत नहीं देते हैं। इसलिए, रेगेक्स ^0+एक स्ट्रिंग की शुरुआत में सभी जीरो से मेल खाता है।
preg_replace() expects at least 3 parameters, 2 given
मुझे नहीं लगता कि preg_replace जवाब है .. पुराना धागा लेकिन बस आज के लिए देख रहा हूँ। ltrim और (int) कास्टिंग विजेता है।
<?php
$numString = "0000001123000";
$actualInt = "1123000";
$fixed_str1 = preg_replace('/000+/','',$numString);
$fixed_str2 = ltrim($numString, '0');
$fixed_str3 = (int)$numString;
echo $numString . " Original";
echo "<br>";
echo $fixed_str1 . " Fix1";
echo "<br>";
echo $fixed_str2 . " Fix2";
echo "<br>";
echo $fixed_str3 . " Fix3";
echo "<br>";
echo $actualInt . " Actual integer in string";
//output
0000001123000 Origina
1123 Fix1
1123000 Fix2
1123000 Fix3
1123000 Actual integer in tring
इस तरह से फिक्स्ड।
यह बहुत सरल है। केवल एक स्ट्रिंग पास करें इसकी स्ट्रिंग की शून्य शुरुआत को हटा दें।
function removeZeroString($str='')
{
while(trim(substr($str,0,1)) === '0')
{
$str = ltrim($str,'0');
}
return $str;
}
अजय कुमार ने सबसे सरल प्रतिध्वनि + $ सुन्न प्रदान की; मैं इनका उपयोग करता हूं:
echo round($val = "0005");
echo $val = 0005;
//both output 5
echo round($val = 00000648370000075845);
echo round($val = "00000648370000075845");
//output 648370000075845, no need to care about the other zeroes in the number
//like with regex or comparative functions. Works w/wo single/double quotes
वास्तव में कोई भी गणित फ़ंक्शन "स्ट्रिंग" से संख्या लेगा और ऐसा व्यवहार करेगा। यह किसी भी रेगेक्स या तुलनात्मक कार्यों की तुलना में बहुत सरल है। मैंने देखा कि php.net में, याद नहीं है कि कहाँ है।
मान लें कि आप तीन या अधिक शून्य का रन-वे हटाना चाहते हैं और आपका उदाहरण एक स्ट्रिंग है:
$test_str ="0002030050400000234892839000239074";
$fixed_str = preg_replace('/000+/','',$test_str);
यदि आप मेरी मान्यताओं से दूर हैं, तो आप रेगेक्स पैटर्न को फिट बना सकते हैं।
यह मदद?
<br>संख्याओं को अलग करने वाले टैग थे ; क्या वे वास्तव में आपके तार का हिस्सा हैं?