在PHP中,如果我在字符串“a b a b a b c”中替换“a”,我如何将其替换为匹配的索引(即“1 b 2 b 3 b c”)?
答案 0 :(得分:3)
PHP 5.3.0示例(未测试):
$i = 0;
preg_replace_callback("/a/", function( $match ) {
global $i;
return ++$i;
}, "a b a b a b c");
答案 1 :(得分:2)
您确定需要preg _ *?
我将如何做到这一点:
$numerals = range(1, 10);
$str = str_replace('a', $numerals, $str);
遗憾地被忽略且经常被忽略的str_replace()函数可以接受数组作为参数。如果数组作为第二个参数传递,它将使用相应数组的元素更改搜索字符串的每次出现。
答案 2 :(得分:2)
$str = 'a b a ba a';
$count = 1;
while(($letter_pos = strpos($str, 'a')) !== false) {
$str = substr_replace($str, $count++, $letter_pos, 1);
}