【发布时间】:2022-01-17 15:52:59
【问题描述】:
我有 2 个数组和一个字符串:
$attribute_ids = array(200,201);
$attribute_names = array("David","Rimma");
$string = "200 2006-2009 boy, 201 girl";
$string = str_replace($attribute_ids, $attribute_names, $string);
输出是“David David6-David9 boy, Rimma girl”
预计是“David 2006-2009 男孩,Rimma 女孩”
问题是当数组包含 200 并且字符串包含 2000 时 str_replace 替换 2000 中的字符串 200。
我试图只替换数组“$attribute_ids”中给出的完全相同的字符串。
我试过preg_replace,但没用。
【问题讨论】:
-
将数组连接成一个密钥对,所以
[200 => "David", 201 => "Rimma"]然后通过分割空格将$string拆分成一个数组,然后只做一个 foreach 键,键对的值,然后替换字符串,如果它与键匹配,如果匹配,则将其替换为密钥对中的值 -
这很慢(我之前的评论)但它有效
-
你可以在
$attribute_ids中使用preg_replace()和单词分隔符正则表达式 -
对于最后一部分,我如何从拆分字符串转换回普通字符串? @Dean Van Greunen
-
你是如何尝试使用
preg_replace()的?
标签: php preg-replace str-replace