$str = "Hello {{name}} welcome to {{company_name}}";
$array = ['name' => 'max', 'company_name' => 'Stack Exchange'];
如何使用数组值替换{{name}}和{{company_name}}。任何返回输出的php函数,如
Hello max welcome to Stack Exchange
答案 0 :(得分:1)
首先使用搜索字段创建一个新数组,用大括号括起来:
$searchArray = array_map(function($value) {
return "{{" . $value . "}}";
}, array_keys($array));
现在您有一个包含要搜索的标记的数组,并且您已经拥有了要替换标记的值数组。
所以只需做一个简单的str_replace
:
echo str_replace($searchArray, $array, $str);
这是一个整洁的小功能:
function fillTemplate($templateString, array $searchReplaceArray) {
return str_replace(
array_map(function($value) { return "{{" . $value . "}}"; }, array_keys($searchReplaceArray)),
$searchReplaceArray,
$templateString
);
}
现在你可以这样称呼它:
echo fillTemplate(
"Hello {{name}} welcome to {{company_name}}",
['name' => 'max', 'company_name' => 'Stack Exchange']
);
// Hello max welcome to Stack Exchange
答案 1 :(得分:0)
查看PHP的这个不错的功能:http://php.net/manual/de/function.strtr.php 你可以找到它的例子和解释。
$str = "Hello {{name}} welcome to {{company_name}}";
$array = ['{{name}}' => 'max', '{{company_name}}' => 'Stack Exchange'];
print strtr ($str, $array);