【发布时间】:2016-01-11 06:57:44
【问题描述】:
我有一个字符串,其中包含一个或多个用空格字符分隔的整数,例如:
$string = '2 7 6 9 11';
我想用存储在数组中的相应单词替换每个数字,例如:
static $companyTypes = array('word1', 'word2', 'word3', 'word4', 'word5', 'word6', 'word7', 'word8', 'word9', 'word10', 'word11', 'word12');
所以我使用了我在此页面中找到的示例:http://php.net/manual/en/function.preg-replace.php
我定义了一个这样的模式数组:
$pattern = array('/1/','/2/','/3/','/4/','/5/','/6/','/7/','/8/','/9/','/10/','/11/','/12/');
最后像这样使用 preg_replace 函数:
$order->company_type= preg_replace($pattern, $companyTypes, $order->company_type);
但不幸的是,此解决方案不会区分一位数字和两位数字,因此如果输入字符串是“1 11”,则输出将是“word1 word1word1”而不是“word1 word11”。
任何帮助将不胜感激。
【问题讨论】:
-
使用单词边界
\b:/\b1\b/、/\b2\b/等等。
标签: php regex preg-replace