为了账号安全,请及时绑定邮箱和手机立即绑定

跪求!php 合并字符串中的相同项求解答!

跪求!php 合并字符串中的相同项求解答!

至尊宝的传说 2019-10-25 20:47:18
有一个字符串,用“。”分割,写一个程序。合并字符串中相同的项。如字符串“大家好[81]。你是谁[3]。大家好[3]。老师好[12]。上午好。上午好[12]。”,合并后为"大家好[84]。你是谁[3]。老师好[12]。上午好[13]。"
查看完整描述

2 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

$str='大家好[81]。你是谁[3]。大家好[3]。老师好[12]。上午好。上午好[12]。';
$arr=mb_split("。",$str);
foreach($arras$k=>$v){
$tmp[]=preg_split('/\[/',$v);
}
$res=[];
foreach($tmpas$k=>$v){
$res[$v[0]][]=$v[1];
}
$result=[];
foreach($resas$k=>$v){
$i=0;
if(!empty($k)){
foreach($vas$k1=>$v1){
if(empty($v1))$i++;
else$i=$i+ltrim($v1,']');
$result[$k]=$i;
}
}
}
$resStr='';
foreach($resultas$k=>$v){
$resStr.=$k.'['.$v.']'.'。';
}
print_r($resStr);
                            
查看完整回答
反对 回复 2019-10-25
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

$str='大家好[81]。你是谁[3]。大家好[3]。老师好[12]。上午好。上午好[12]。';
$arr=explode('。',$str);
$result=[];
foreach($arras$item){
if(preg_match('!(?.+?)(\[(?\d+)\]?)!',$item,$row)){
$i=$row['i']??0;
if(isset($result[$row['str']])){
$result[$row['str']]+=$i;
}else{
$result[$row['str']]=$i;
}
}
}
$result_str='';
foreach($resultas$key=>$item){
$result_str.=sprintf('%s[%d]。',$key,$item);
}
var_dump($result_str);
//大家好[84]。你是谁[3]。老师好[12]。上午好[12]。
                            
查看完整回答
反对 回复 2019-10-25
  • 2 回答
  • 0 关注
  • 357 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号