1 回答

TA貢獻1863條經驗 獲得超2個贊
不,你不必須使用循環(huán)進行更換,但PHP是將“迭代”的陣列不管什么語法,你使用。
Regex 提供了更簡潔的代碼,但如果您想要更好的性能,strtr()循環(huán)內部很可能會執(zhí)行得更快。
我將$array在我的片段中聲明您的輸入數據。下面的兩個示例都將提供以下輸出:
array (
'item1' => 'red',
'item2' => 'blueJohn',
'item3' => 'green',
'item4' => 'whiteCalifornia',
'item5' => 'blaColack',
'item6' => 'yellowJohn',
)
循環(huán)strtr():(演示)
$translations = [
'#foo#' => 'John',
'#foo2#' => 'California',
'#foo3#' => 'Cola',
];
foreach ($array as &$item) { // modify values by reference with & symbol
$item = strtr($item, $translations); // translate placeholder to desired substring from lookup array
}
var_export($array);
preg_replace(): ( Demo ) *通知模式定界符被添加到查找數組中
$translations = [
'~#foo#~' => 'John',
'~#foo2#~' => 'California',
'~#foo3#~' => 'Cola',
];
var_export(preg_replace(array_keys($translations), $translations, $array));
ps 如果您不知道如何生成您的$list,那么我無法理解您將如何知道如何將特定占位符轉換為適當的值。我假設您有足夠的項目邏輯知識來編寫適當的翻譯/查找數組。
- 1 回答
- 0 關注
- 185 瀏覽
添加回答
舉報