我想做一个字符串替换在数组中的所有项目。我有:
$row['c1'] = str_replace("&", "&", $row['c1']);
$row['c2'] = str_replace("&", "&", $row['c2']);
$row['c3'] = str_replace("&", "&", $row['c3']);
$row['c4'] = str_replace("&", "&", $row['c4']);
$row['c5'] = str_replace("&", "&", $row['c5']);
$row['c6'] = str_replace("&", "&", $row['c6']);
$row['c7'] = str_replace("&", "&", $row['c7']);
$row['c8'] = str_replace("&", "&", $row['c8']);
$row['c9'] = str_replace("&", "&", $row['c9']);
$row['c10'] = str_replace("&", "&", $row['c10']);
如何用更少的代码实现这一点?我认为foreach语句会起作用,例如:
$columns = array($row['c1'], $row['c2'], $row['c3'], $row['c4'], $row['c5'], $row['c6'], $row['c7'], $row['c8'], $row['c9'], $row['c10']);
foreach ( $columns as $value){
$value = str_replace("&", "&", $value);
}
但它不起作用。
3条答案
按热度按时间lymnna711#
只要做:
**注意:**您的foreach不工作,因为您需要引用,或使用键:
或者:
虽然这里不需要,因为
str_replace
接受并返回数组。nwlls2ji2#
您应该通过引用调用它,否则
foreach
将创建$value
的重复副本foreach ( $columns as &$value)
yk9xbfzb3#
另一个解决方案是像这样使用PHP
array_walk
:输出: