PHP - 如何使用数组更改字符串中的特定单词

时间:2016-06-14 15:29:26

标签: php

$str = "Hello {{name}} welcome to {{company_name}}";

$array = ['name' => 'max', 'company_name' => 'Stack Exchange'];

如何使用数组值替换{{name}}和{{company_name}}。任何返回输出的php函数,如

Hello max welcome to Stack Exchange

2 个答案:

答案 0 :(得分:1)

首先使用搜索字段创建一个新数组,用大括号括起来:

$searchArray = array_map(function($value) {
    return "{{" . $value . "}}";
}, array_keys($array));

现在您有一个包含要搜索的标记的数组,并且您已经拥有了要替换标记的值数组。

所以只需做一个简单的str_replace

echo str_replace($searchArray, $array, $str);

工作示例:https://3v4l.org/8tPZt

这是一个整洁的小功能:

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

示例:https://3v4l.org/rh0KX

答案 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);