有一个字符串,用“。”分割,写一个程序。合并字符串中相同的项。如字符串“大家好[81]。你是谁[3]。大家好[3]。老师好[12]。上午好。上午好[12]。”,合并后为"大家好[84]。你是谁[3]。老师好[12]。上午好[13]。"
2 回答

森林海
TA贡献2011条经验 获得超2个赞
$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);

慕标5832272
TA贡献1966条经验 获得超4个赞
$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]。
添加回答
举报
0/150
提交
取消