使用循环来简化 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]);
我可以简化这段代码吗?我从 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]);