如何用php增加计数数字preg_replace?

时间:2013-04-20 15:50:15

标签: php regex php-5.3

我需要用增量计数数替换某个模式。 我的代码:

$text = "Hello (apple) hello (banana) hello (cucumber)";
$pattern = '/\(([^\)]*)\)/s';

$i = 0;
$returnText = preg_replace_callback($pattern, function($matches) use ($i) {
    return '<sup>['.$i++.']</sup>';
}, $text);

echo $returnText;

结果:

Hello [0] hello [0] hello [0]

我需要什么:

Hello [0] hello [1] hello [2]

我做错了什么?

1 个答案:

答案 0 :(得分:4)

您忘了通过引用传递$ i。只需在 $ i 之前添加&amp;

$returnText = preg_replace_callback($pattern, function($matches) use (&$i)