Один из способов сделать с regex
взглядом в будущее, чтобы вы могли получить все цифры, за которыми следует слово Sek
. Если вы хотите выполнить какую-либо фильтрацию для сопоставленного результата, такого как 3 цифры или что-то еще, вы можете использовать функцию strlen () .
$re = '/\d+(?= Sek)/';
$str = 'aaa ~120 Sek. 53 Sek. ~~ bbb asdfasf aasdf asdfasdf ~600 Sek. ~~ ccc ~60 Sek. 43 Sek. ~~ ddd ~240 Sek. 55 Sek. ~~';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
#print_r($matches);
$sum = 0;
foreach ($matches as $item) {
$sum += $item[0];
}
echo $sum;
Редактировать: Рассчитать сумма альтернативно
$sum = array_reduce($matches, function(&$result, $item) {
return $result + $item[0];
}, 0);
ИЛИ
$sum= array_sum(array_column($matches,0));
Рабочая демонстрация: https://3v4l.org/iQp0q