2017-04-13 81 views
0

什麼是最好的使用:str_replace,沒有str_replace或任何其他選項?什麼是最好的使用:str_replace,沒有str_replace或任何其他選項?

例如我有一個非空的數組,基於XML文件由php生成,我有一個需要更改的變量。如果值在數組中並且變量具有標準值,則應將該值更改爲其他值(翻譯,其他單詞等)。

我可以用下面的代碼做到這一點:

<?php 
$ethnic_later = 'niet opgegeven'; 
$ethnic_array = array( 'Blank', 
         'getint', 
         'Aziatisch', 
         'Zuid-Amerikaans' 
        ); 
if (in_array('Blank', $ethnic_array) && $ethnic == 'Blank'){ 
    $ethnic = str_replace($ethnic, 'blanke', $ethnic); 
}elseif (in_array('getint', $ethnic_array) && $ethnic == 'getint'){ 
    $ethnic = str_replace($ethnic, 'getinte', $ethnic); 
}elseif (in_array('Aziatisch', $ethnic_array) && $ethnic == 'Aziatisch'){ 
    $ethnic = str_replace($ethnic, 'Aziatische', $ethnic); 
}elseif(in_array($ethnic, $ethnic_array) && $ethnic == 'Zuid-Amerikaans'){ 
    $ethnic = str_replace($ethnic, 'Zuid Amerikaanse', $ethnic); 
}else{ 
    $ethnic = str_replace($ethnic, $ethnic_later, $ethnic); 
} 

echo 'een mooie ' . $ethnic . ' kleur'; 
?> 

或者,我可以只覆蓋的$ethnic值不使用PHP函數str_replace()象下面這樣:

<?php 
$ethnic_later = 'niet opgegeven'; 
$ethnic_array = array( 'Blank', 
         'getint', 
         'Aziatisch', 
         'Zuid-Amerikaans' 
        ); 
if (in_array('Blank', $ethnic_array) && $ethnic == 'Blank'){ 
    $ethnic = 'blanke'; 
}elseif (in_array('getint', $ethnic_array) && $ethnic == 'getint'){ 
    $ethnic = 'getinte'; 
}elseif (in_array('Aziatisch', $ethnic_array) && $ethnic == 'Aziatisch'){ 
    $ethnic = 'Aziatische'; 
}elseif(in_array($ethnic, $ethnic_array) && $ethnic == 'Zuid-Amerikaans'){ 
    $ethnic = 'Zuid Amerikaanse'; 
}else{ 
    $ethnic = $ethnic_later; 
} 

echo 'een mooie ' . $ethnic . ' kleur'; 
?> 

有更多的可能性得到類似這樣的工作,我發佈2上面...我相信最後一個選項,而不使用str_replace()比使用str_replace() ...

我的問題:什麼是使用PHP來做我想要的最佳方式,以及您如何完成這類任務?

+0

''White','Black','Yellow'' ftfy – user2176127

+0

@ user2176127是的,這是創建數組的另一種方式,它不是更具可讀性,而是'array('White','Black','Yellow ');'更快? – jagb

回答

0

創建由您預計在$種族值索引的數組,幷包含字符串您希望$民族變量映射到,像這樣:

<?php 
$ethnic_later = 'niet opgegeven'; 
$ethnic_array = array( 'Blank' => 'blanke', 
       'getint' => 'getinte', 
       'Aziatisch' => 'Aziatische', 
       'Zuid-Amerikaans' => 'Zuid Amerikaanse' 
       ); 
if (isset($ethnic_array[$ethnic])) { 
     $ethnic = $ethnic_array[$ethnic]; 
}else{ 
     $ethnic = $ethnic_later; 
} 

echo 'een mooie ' . $ethnic . ' kleur'; 

當你想添加更多$ ethnics,添加更多元素到數組中。

+0

感謝您的輸入,代碼更短,速度也更快,我沒有測試速度, – jagb