使用循环来简化 preg_replace

Using a loop to simplify 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']);

您可以编写一个简单的循环来减少代码重复:

前提是您的 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]);