PHP使用正则表达式匹配作为POST数组中的键进行替换

PHP使用正则表达式匹配作为POST数组中的键进行替换,php,arrays,regex,Php,Arrays,Regex,我有以下变量: $summary="The problem with field2 is field13. The fix will be field7" $_POST['field2']='thiscomputer'; $_POST['field7']='thishotfix'; $_POST['field13']='thisapplication'; 我正在尝试创建一个preg_replace(),它将在字符串中查找/field[0-9]/,并将其替换为$\u POST数组中的值。但我一

我有以下变量:

$summary="The problem with field2 is field13.  The fix will be field7"
$_POST['field2']='thiscomputer';
$_POST['field7']='thishotfix';
$_POST['field13']='thisapplication';
我正在尝试创建一个preg_replace(),它将在字符串中查找/field[0-9]/,并将其替换为$\u POST数组中的值。但我一直不够。在这个例子中,preg_replace()可能是错误的函数。 我正在尝试替换一个50多个stru_替换的旧长列表


谢谢您的帮助,可以为我指明正确的方向

这行
str\u replace
而不是
preg\u replace
怎么样?您可能需要固定一些间距,这些间距可以通过数组值来解析

echo str_replace(array_keys($_POST),array_values($_POST),$summary);
输出:

The problem with thiscomputer is thisapplication.  The fix will be thishotfix

工作演示:

这行
str\u replace
而不是
preg\u replace
怎么样?您可能需要固定一些间距,这些间距可以通过数组值来解析

echo str_replace(array_keys($_POST),array_values($_POST),$summary);
输出:

The problem with thiscomputer is thisapplication.  The fix will be thishotfix

工作演示:

strtr
,不过我可能想复制并过滤该post数组:

<?php

$summary="The problem with field2 is field13.  The fix will be field7";
$_POST['field2']='thiscomputer';
$_POST['field7']='thishotfix';
$_POST['field13']='thisapplication';

echo strtr($summary, $_POST);

strtr
,不过我可能想复制并过滤该post数组:

<?php

$summary="The problem with field2 is field13.  The fix will be field7";
$_POST['field2']='thiscomputer';
$_POST['field7']='thishotfix';
$_POST['field13']='thisapplication';

echo strtr($summary, $_POST);

preg_replace是一种方法,但是在您的示例中没有字符串
POST1
。这可能是您的问题所在。preg_replace是一种方法,但您的示例中没有字符串
POST1
。这可能是您的问题所在。请注意,strtr和stru替换在替换方式上略有不同。请看:看看这里的基准测试,这确实有效,但因为我正在替换旧的str_替换代码,所以坚持使用新的str_替换方法对我的团队更有效。还是谢谢你!注:strtr和STRU替换在替换方式上略有不同。请看:看看这里的基准测试,这确实有效,但因为我正在替换旧的str_替换代码,所以坚持使用新的str_替换方法对我的团队更有效。还是谢谢你@渴望它能帮助你:)渴望它能帮助你:)