Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果数字在PHP中小于10,则添加前导零_Php_Pagination_Preg Replace_Leading Zero - Fatal编程技术网

如果数字在PHP中小于10,则添加前导零

如果数字在PHP中小于10,则添加前导零,php,pagination,preg-replace,leading-zero,Php,Pagination,Preg Replace,Leading Zero,如果数字小于10,我想创建一个带前导零的分页: 我的分页输出类似的HTML: <div> <a href="#">&lt;</a> <span>7</span> <a href="#">8</a> <a href="#">9</a> <a href="#"

如果数字小于10,我想创建一个带前导零的分页: <07 08 09 10 11>

我的分页输出类似的HTML:

<div>
    <a href="#">&lt;</a>
    <span>7</span>
    <a href="#">8</a>
    <a href="#">9</a>
    <a href="#">10</a>
    <a href="#">11</a>
    <a href="#">&gt;</a>
</div>
我用
str\u replace
解决了这个问题,但这很难看:

$r = str_replace(array('>1<','>2<','>3<','>4<','>5<','>6<','>7<','>8<','>9<'), array('>01<','>02<','>03<','>04<','>05<','>06<','>07<','>08<','>09<'), $r);

$r=str_replace(数组)('>12345678910203040506070809您需要捕获原始编号并将其复制到替换中

$r = preg_replace('/>([0-9])</', '>0$1<', $r);

$r=preg_replace('/>([0-9])0$1是的,您可以使用
sprintf

$numPadded = sprintf("%02d", $num);
echo $numPadded; 

@aynber这个问题没有说明当数字被替换为
preg_replace()时该怎么做
@Barmar啊,我没有意识到OP是在生成HTML之后才尝试这样做的。最好在第一次生成HTML时这样做,而不是以后再修复。我使用内置函数来显示分页,所以我必须修改HTML输出,在
preg_replace()中演示如何做到这一点
。您需要使用
preg\u replace\u callback()
,这似乎有些过分。我如何捕获原始号码以便在
preg\u replace
中使用它?
$numPadded = sprintf("%02d", $num);
echo $numPadded;