群内突然有人【桔子】提问:
$str = '0001';//这个数有可能是'001020'……请问怎么取到前导有多少个'0'?('0001'结果为3,'001020'结果为2)
然后自问自答,说这些是他同事写的:
//算法1
$str = '001020';
echo strlen(str_replace((int)$str, '', $str));
//算法2
$text = '0001';
$zero = strlen($text) - strlen(ltrim($text, '0'));
return $zero;
然后说了他自己写的:
$string = '000 012012';
$string = str_replace(' ', '', $string);
$length = strlen($string);
$x = 0;
for ($i = 0; $i < $length; $i++)
{
$currentStr = $string{$i};
if ($currentStr != 0)
{
break;
}
$x++;
}
echo $x;
最后我也写了两个,一个正则,一个是利用现有函数:
$str = '00 0 000100002000';
preg_match( "/^0{0,}/", str_replace( " ", "", $str ), $out );
echo( $out[0] );
$str = '00 0 000100002000';
$tt = str_word_count(str_replace( " ", "", $str ),1,'0');
echo( $tt[0] );
之所以要用str_replace,也是因为桔子说的,以防当中有空格。但事实上,如果出这种题目,应该是不会有空格的吧?
哈哈完事。。。

评论 (8)
这两天CCTV天天曝光。。。
我在期待今年春晚可以看到哪些名人
我一直在用rashost.com
张晏也是,考虑下
一百来块钱一个月
VPS
你可以搜索一下:新西兰 闵行 拆迁 就知道了