Php 从preg_replace获取匹配项并将其用作数组键

Php 从preg_replace获取匹配项并将其用作数组键,php,arrays,string,preg-replace,Php,Arrays,String,Preg Replace,我想从字符串中获取匹配项,并在数组中使用它们作为键,将字符串中的值更改为数组的值 如果这更容易实现,我可以将fantasy标签从%更改为%!也适用于JS/jQuery中没有问题的任何内容。这个脚本用于外部JS文件和更改一些变量,我无法从JS/jQuery访问这些变量。所以我想用PHP插入它们,并将它们缩小并压缩到浏览器中 $array = array ( 'abc' => 'Test', 'def' => 'Variable', 'ghi' => 'Change' ); $st

我想从字符串中获取匹配项,并在数组中使用它们作为键,将字符串中的值更改为数组的值

如果这更容易实现,我可以将fantasy标签从%更改为%!也适用于JS/jQuery中没有问题的任何内容。这个脚本用于外部JS文件和更改一些变量,我无法从JS/jQuery访问这些变量。所以我想用PHP插入它们,并将它们缩小并压缩到浏览器中

$array = array ( 'abc' => 'Test', 'def' => 'Variable', 'ghi' => 'Change' );
$string ='This is just a %!abc!% String and i wanna %!ghi!% the %!def!%';

$string = preg_replace('%!(.*?)!%',$array[$1],$string);
echo $string;
可以使用with将数组的键转换为正则表达式,然后将数组的值用作以下数组形式的替换字符串:

输出:

This is just a Test String and i wanna Change the Variable

用preg\u match\u all代替?对不起:是的,当然。但我的主要问题是,如何从标记之间取出字符串,并将其用作现有数组中的键,从而将数组值放入字符串中太棒了!非常感谢:@Rico不用担心。我很高兴能帮上忙。
This is just a Test String and i wanna Change the Variable