2016-07-22 4 views
0

Я могу упростить этот код? Я получаю пять строк из запроса SELECT, разделяя их только на числа и добавляя их.Использование цикла для упрощения preg_replace

$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']); 

ответ

1

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

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

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

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

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

Ничего себе, спасибо! Я приму ваш ответ, когда ожидание будет :) –

+0

Нет проблем. В качестве побочного примечания, если вам нужно часто запускать код (например, не только еженедельный отчет о чем-то), я бы реорганизовал базу данных для включения необходимых данных в целые столбцы, поэтому вы можете сделать математику в SQL самостоятельно – Steve

Смежные вопросы