Использование цикла для упрощения preg_replace

Могу ли я упростить этот код? Я получаю пять строк от SELECT запрос, обрезая их до только чисел и добавляя их.

$sum = preg_replace("/[^0-9]/","",$row['AB']) + preg_replace("/[^0-9]/","",$row['CD']) + preg_replace("/[^0-9]/","",$row['EF']) + preg_replace("/[^0-9]/","",$row['GH']) + preg_replace("/[^0-9]/","",$row['IJ']);

Могу ли я сделать что-то вроде этого:

preg_replace("/[^0-9]/","",$sum = $row['AB'] + $row['CD'] + $row['EF'] + $row['GH'] + $row['IJ']);

0

Решение

Вы можете написать простой цикл, чтобы уменьшить дублирование кода:

При условии, что ваш sql выбирает только необходимые столбцы:

$sum = 0;
foreach($row as $item)
$sum += preg_replace("/[^0-9]/","",$item);

Если у вас есть больше столбцов в строке (и вам действительно нужны эти данные, чтобы вы не могли просто изменить SQL):

$sum = 0;
foreach(['AB','CD','EF','GH','IJ'] as $key)
$sum += preg_replace("/[^0-9]/","",$row[$key]);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]