有一个字符串,用“。”分割,写一个程序。合并字符串中相同的项。如字符串“大家好[81]。你是谁[3]。大家好[3]。老师好[12]。上午好。上午好[12]。”,合并后为"大家好[84]。你是谁[3]。老师好[12]。上午好[13]。"
有一个字符串,用“。”分割,写一个程序。合并字符串中相同的项。如字符串“大家好[81]。你是谁[3]。大家好[3]。老师好[12]。上午好。上午好[12]。”,合并后为"大家好[84]。你是谁[3]。老师好[12]。上午好[13]。"
$str = '大家好[81]。你是谁[3]。大家好[3]。老师好[12]。上午好。上午好[12]。';
$arr = explode('。',$str);
$result = [];
foreach($arr as $item){
if(preg_match('!(?<str>.+?)(\[(?<i>\d+)\]?)!',$item,$row)){
$i = $row['i']??0;
if(isset($result[$row['str']])){
$result[$row['str']]+=$i;
}else{
$result[$row['str']]=$i;
}
}
}
$result_str = '';
foreach($result as $key=>$item){
$result_str .= sprintf('%s[%d]。',$key,$item);
}
var_dump($result_str);
// 大家好[84]。你是谁[3]。老师好[12]。上午好[12]。
$str = '大家好[81]。你是谁[3]。大家好[3]。老师好[12]。上午好。上午好[12]。';
$arr = explode('。',$str);
$result = [];
foreach($arr as $item){
if(!empty($item) AND preg_match('/^(.*?)(\[(\d+)\])?$/',$item,$row)){
$i = isset($row[3]) ? $row[3] : 1;
if(isset($result[$row[1]])){
$result[$row[1]]+=$i;
}else{
$result[$row[1]]=$i;
}
}
}
$result_str = '';
foreach($result as $key=>$item){
$result_str .= sprintf('%s[%d]。',$key,$item);
}
var_dump($result_str);
// 大家好[84]。你是谁[3]。老师好[12]。上午好[13]。
抄袭楼上唯一丶
2 回答1.3k 阅读✓ 已解决
2 回答827 阅读✓ 已解决
1 回答920 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
2 回答885 阅读
1 回答876 阅读
1 回答805 阅读
$str = '大家好[81]。你是谁[3]。大家好[3]。老师好[12]。上午好。上午好[12]。';