2014-07-02 31 views
1

我覺得必須有更有效的方法來獲得相同的結果。 我正在從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,海濱)一起,或許與數組,然後可以替換的值的更有效的方法?我將如何迴應每個領域?

回答

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是一個字符串,那麼這個替換字符串用於每個搜索值。

+2

你接過話(又名:打字)右出我的嘴/手指。好答案!已投票... – NYCBilly

+0

我秒@ Philly2NYC剛纔說的 – Darren

+1

100,091 - 現在它已經(通過)正式;-) –

0

對於二進制計算,str_replace似乎過多。

您仍然可以使用在約翰·孔德的答案循環,但它裏面我會用一個terniary聲明,因爲你期待Y或N.

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