2011-03-15 51 views
0

可能重複:
PHP str_replace with for loop from arraystr_replace - 如何處理特殊情況?

如何從一個數組元素替換字符串(#stringA#)...讓我們說,我們已經在文本:

'My shoes are #stringA# but #stringA#'(相同的字符串 - #stringA#)

with $ array:

$array[0] = 'comfy'; 
$array[1] = 'smells horrible'; 

所以它會等於'My shoes are ' . $array[0] . ' but ' . $array[1]; - 我的鞋子很舒服,但氣味可怕?

回答

1

通常在這種情況下,您可以使用%s作爲字符串替換,然後使用vsprtinf()將%s的出現替換爲數組中的值。但是,在像您這樣的簡單情況下,您也可以用%s替換搜索字符串並獲得相同的效果。例如:

<?php 

$string = 'My shoes are #stringA# but #stringA#'; 
$key = "#stringA#"; 

$array[0] = 'comfy'; 
$array[1] = 'smells horrible'; 

$string = str_replace(array('%', $key), array('%%', '%s'), $string); 
$newstring = vsprintf($string, $array); 

echo $newstring; 

?> 

(更換%至%%是避免與在一般的情況下的printf符號的任何問題)