【发布时间】:2019-06-08 00:21:52
【问题描述】:
使用 str_replace() 替换几段文本数据中的值,它似乎这样做了,但顺序很奇怪。要替换的值位于硬编码数组中,而替换值位于来自名为 DBConnect() 的自定义函数提供的查询的数组中。
我在两者上都使用了 print_r() 来验证它们是否正确并且它们是:两者具有相同数量的条目并且具有相同的顺序,但屏幕上的结果不匹配。我希望这很简单,并且认为这个简单的任务不需要任何循环,因为 str_replace() 本身通常会处理它,但我错过了什么吗?
$replace = array('[MyLocation]','[CustLocation]','[MilesInc]','[ExtraDoc]');
$replacements = DBConnect($sqlPrices,"select",$siteDB);
$PageText = str_replace($replace,$replacements,$PageText);
$replacements 是:
Array
(
[0] => 25
[MyLocation] => 25
[1] => 45
[CustLocation] => 45
[2] => 10
[MilesInc] => 10
[3] => 10
[ExtraDoc] => 10
)
【问题讨论】:
-
你能给我们看一个
$replacements数组的例子吗 -
您不能在数组上使用 str_replace。 str_replace 在字符串上使用。
-
@AbedPutra From: php.net/manual/en/function.str-replace.php "搜索:正在搜索的值,也称为针。可以使用数组来指定多个针。"。除此之外,所有参数都可以是一个数组。
-
@MattFryer 哦,对不起,我没有仔细阅读。对于DonP,你试试这个stackoverflow.com/questions/24554723/…
-
@AbedPutra 无需道歉 :)
标签: php arrays str-replace