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

大佬们遇到过这个问题吗?php 合并字符串中的相同项怎么回事哈啊?

大佬们遇到过这个问题吗?php 合并字符串中的相同项怎么回事哈啊?

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

2 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

$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贡献1810条经验 获得超5个赞

$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 关注
  • 323 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信