在逗号分隔的前缀列表中查找前缀的有效方法

时间:2017-01-01 12:27:38

标签: php

我有一个存储在变量

中的前缀
$prefix = “07”;

并且昏迷分隔存储在另一个变量中的前缀列表(该列表由用户使用文本框提供)

$allPrefixes = “07,03,+17”;

检查$前缀中存储的值是否是存储在$ allPrefixes

中的前缀之一的有效方法是什么?

1 个答案:

答案 0 :(得分:0)

我要去正则表达式匹配:

$regex = "/(^|,)".$prefixe."(,|$)/";
preg_match($regex,$allPrefixes);
  • 在逗号前的字符串开头,
  • 逗号之间
  • 逗号之后
  • ,在字符串结尾处

上述正则表达式将匹配,例如07但不匹配007

一般知识,在这种情况下不适用:
如果007不太可能出现,或者prefixe不可能是任何其他prefixe的子字符串,那么您可以使用strpos($allPrefixes, $prefixe) > -1代替,这样效率会更高

<强>然而
$allPrefixes字符串包装在,之间并使用strpos可能既高效又准确:

strpos(",".$allPrefixes.",", ",".$prefixe.",")

将匹配07但不匹配007