我想将数字字段的数组(值为864和987)中的实际值替换为下面给出的字段,但我不知道如何将[crowdpdf-total=field_585b0b3288d2e]
替换为例如864
和{ {1}} [crowdpdf-total=field_585b0b3288d2f]
。
数组:
987
字符串:
array (
'field_585b0b3288d2e'=> 864,
'field_585b0b3288d2f => 987
)
我擅长许多事情,但由于某些原因,我从未完全理解正则表达式...我猜正则表达式是用实际值替换etc etc etc content
[crowdpdf-total=field_585b0b3288d2e]
etc etc [crowdpdf-total=field_585b0b3288d2f]
etc content
的方法吗?正则表达式是走这里的方式吗?
我希望字符串为:
[crowdpdf-total={nameoffield}]
澄清:
我理解如何更换的实际值,所以我可以像替换那样做
etc etc etc content
864
etc etc 987
etc content
我可以删除[crowdpdf-total=864]
,只需用空字符串替换[crowdpdf-total=
,但我会在每个值的末尾添加一个括号。
答案 0 :(得分:3)
您不需要为此使用正则表达式。一个简单的字符串替换将执行:
<?php
$string = <<<EOT
etc etc etc content
[crowdpdf-total=field_585b0b3288d2e]
etc etc [crowdpdf-total=field_585b0b3288d2f]
etc content
EOT;
$replacements = [
'field_585b0b3288d2e' => 864,
'field_585b0b3288d2f' => 987,
];
foreach ($replacements as $find => $replace) {
$string = str_replace("[crowdpdf-total=$find]", $replace, $string);
}
echo $string;
输出:
etc etc etc content
864
etc etc 987
etc content
Test it online,如果你愿意的话。