php函数preg_replace 替换个数,是个数不是次数

现在用preg_replace函数来替换2个数组中的元素我知道第四个参数$limit是控制替换次数的,但是这个只是控制的数组中一个元素被替换的次数我现在想要替换的个数,就... 现在用preg_replace 函数来替换2个数组中的元素
我知道第四个参数$limit是控制替换次数的,但是这个只是控制的数组中一个元素被替换的次数
我现在想要替换的个数,就是一共只替换几个元素。
比如说我只要替换3个,那替换3个元素后,剩下的都不替换了,这个应该怎么弄?
或者 有什么函数可以代替?
解决了可以加分~
展开
 我来答
百度网友9308069
推荐于2016-03-03 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1872万
展开全部
$limit控制在每个主体字符串中的替换次数
php版本5.1.0之后,加入了第五个参数$count,,返回总替换次数。
preg_replace('/正则/',格式,数组,替换数,$c); //返回替换次数到$c中
如果要替换数组数,我觉得就用循环计数比较合适
<?php
$a=array(被替换的数据,数据,数据);
$threshold=3; //限制3个元素
$n=0;
foreach($a as $e){
$c=0;
preg_replace('/正则/',格式,$e,-1,$c);
if($c>0) $n++;
if($n>=$threshold) break;
}
这样仅替换3个元素
更多追问追答
追问
首先谢谢你
但是你我说的你理解错了
我的意思不是被替换的数据是数组,是前面两个是数组,也就是你preg_replace('/正则/',格式,$e,-1,$c);这里的 “/正则”和”格式“是数组
不能单独判断数组里的前3个元素,因为你数组里的前3个元素不一定出现被替换的数据里,而我想要的是成功替换的个数
谢谢~
追答
你是要“输入的多个正则模板(数组)中替换成功最多3个”。这理解对吗
代码也类似
' $1替换1'
'/正则2/'=>' $1替换2'
'/正则n/'=>' $1替换n'
);
$threshold=3; //限制替换最多其中任意3个模板
$n=0;
$t=原文数据或数组
foreach($patterns as $p=>$r){
$t=preg_replace($p,$r, $t,-1,$c);
if($c>0) {
$n++;
echo '替换成功1次'.$t;
}
if($n>=$threshold) break;
}
$t中就是替换后的数据
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式