我有一些格式为15-37;10-38;5-39;
,5-XXS;45-XS;
的字符串。
在-
是数量之前,-
是大小之后。 ;
表示新对的开始。
无需explode()
字符串两次,有没有办法可以添加所有数量?
例如,15-37;10-38;5-39;
的总数量为30。
谢谢。
答案 0 :(得分:1)
尝试使用preg_match()
$str ='15-37;10-38;5-39;';
preg_match_all('/(?P<digit>\d+)-/', $str, $matches);
或
preg_match_all('/(\d+)-/', $str, $matches);
echo array_sum($matches[0]); //30
答案 1 :(得分:1)
我想出了以下代码:
$helper = "15-37;10-38;5-39;";
$sum=0;
for($i=0; $i<$helper.length; $i++){
if($helper[$i]=="-"){
while($helper[$i]!=";")
$i++;
}
else
{
if($helper[$i]!=";"){
$aux="";
while($helper[$i]!="-" && $helper[$i]!=";"){
$aux = $aux.$helper[$i];
//echo $helper[$i]." ";
$k++;
$i++;
}
$i--;
echo (int)$aux."<br>";
$sum = $sum + intval($aux);
}
}
}
echo $sum;
您可以在此处测试:http://writecodeonline.com/php/ 最后输出的数字是总和。
希望它有所帮助!