Php 用数组值替换字符串中的模板

Php 用数组值替换字符串中的模板,php,regex,Php,Regex,我有一个字符串,可以有简单的模板。我有一个数组,其中包含replacemenet的值。目前,我正在做它与循环。但我想把它改成preg_替换。你能帮我吗 例如: $values = array( 'id' => 120, 'name' => 'Jim' ); $string = 'Hello <!name!>. Your ID is <!id!>'; $output = preg_replace(...); // Hello Jim. You

我有一个字符串,可以有简单的模板。我有一个数组,其中包含replacemenet的值。目前,我正在做它与循环。但我想把它改成preg_替换。你能帮我吗

例如:

$values = array(
    'id'   => 120,
    'name' => 'Jim'
);
$string = 'Hello <!name!>. Your ID is <!id!>';
$output = preg_replace(...); // Hello Jim. Your ID is 120
$values=数组(
“id”=>120,
“姓名”=>“吉姆”
);
$string='你好。你的身份证是';
$output=preg_replace(…);//你好,吉姆。你的身份证号码是120

此外,preg_replace不仅可以用于id和name,还可以用于任何其他键。谢谢。

像下面这样的东西

<?php
$values = array(
    'id'   => 120,
    'name' => 'Jim'
);
$string = 'Hello <!name!>. Your ID is <!id!>';

function foo($val) {
        return '/<!' . $val . '!>/';
}

echo preg_replace(array_map('foo', array_keys($values)), array_values($values), $string);

像下面这样的东西

<?php
$values = array(
    'id'   => 120,
    'name' => 'Jim'
);
$string = 'Hello <!name!>. Your ID is <!id!>';

function foo($val) {
        return '/<!' . $val . '!>/';
}

echo preg_replace(array_map('foo', array_keys($values)), array_values($values), $string);

我可能会使用
preg\u replace\u回调
和闭包。我可能会使用
preg\u replace\u回调
和闭包。谢谢。好东西。我是否可以使用类方法而不是数组映射()的函数?
preg\u replace\u callback()
是另一种选择。谢谢。好东西。我是否可以使用类方法而不是数组映射()的函数?
preg\u replace\u callback()
是另一种选择。