我有一个像这样的字符串:
Hello my name is [foo], I'm from [foo]
然后我宣布一个数组:
$foo = array('Sam', 'Tunisia');
如何在文本中找到[foo]的所有出现并用$ foo [0]替换第一个,用$ foo [1]替换第二个...结果应该是这样的:
Hello my name is Sam, I'm from Tunisia
PS:我必须使用相同的模式[foo]
答案 0 :(得分:3)
根据@ Rizer123的建议,使用preg_replace_callback()
。例如:
<?php
$str = "Hello my name is [foo], I'm from [foo]";
$foo = ['Sam', 'Tunisia'];
// note: passing `$foo` by reference. This allows you to
// unshift entries for each match. If there are more matches
// in `$str` than elements in the `$foo` array, `array_shift()`
// will simply return `null`
echo preg_replace_callback('/\[foo\]/', function() use (&$foo) {
return array_shift($foo);
}, $str);
收率:
您好,我的名字是Sam,我来自突尼斯
有关更多信息,请参阅PHP文档:
希望这会有所帮助:)