想要一种更有效的方法来替换字符串值

时间:2014-07-02 01:15:43

标签: php arrays string str-replace

我觉得必须有一种更有效的方法来获得相同的结果。 我从SQL查询中获取数据。其中一些值返回“Y”或“N”,我将其替换为“是”或“否”。所以我将每个字段定位如下:

$pool= $row['POOL'];
$pool= str_replace("Y","Yes",$pool);
$pool= str_replace("N","No",$pool);
echo $pool

$wf= $row['WATERFRONT'];
$wf= str_replace("Y","Yes",$wf);
$wf= str_replace("N","No",$wf);
echo $wf

依此类推......是否有更有效的方法将所有“Y / N”字段(POOL,WATERFRONT)组合在一起,可能还有一个数组,然后可以替换这些值?我将如何回应每个领域?

2 个答案:

答案 0 :(得分:6)

foreach(array('POOL', 'WATERFRONT') as $field) {
    echo str_replace(array('Yes', 'No'), array('Y', 'N'), $row[$field]);
}

这只是将每个Y / N字段的数组键放入一个数组中,然后遍历它。在循环内部,它使用str_replace()但利用了capability to pass arrays for both the values to swap and their replacements

  

如果搜索和替换是数组,则str_replace()从每个数组中获取一个值,并使用它们来搜索和替换主题。如果replace的值小于search,则空字符串将用于其余的替换值。如果search是一个数组而replace是一个字符串,那么这个替换字符串将用于搜索的每个值。

答案 1 :(得分:0)

对于二进制计算,

str_replace似乎过多。

你仍然可以在John Conde的答案中使用循环,但在其中我会使用一个三元语句,因为你期望Y或N.

<?php echo $row[$field] == 'Y' ? 'Yes' : 'No'; ?>