2016-07-22 3 views
0

이 코드를 단순화 할 수 있습니까? SELECT 쿼리에서 5 개의 문자열을 가져 와서 숫자 만 제거하고 추가합니다.루프를 사용하여 단순화 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