php:在数组中查找变量字符

一个包含电话号码的变量号码,并且号码前面有国家前缀,电话号码是动态的,可以是来自任何国家/地区的任何电话号码.
因此,我需要通过匹配变量中的某些字符(即电话号码前面的国家/地区前缀)与DB中的记录(国家/地区前缀将被提取到数组中)保存所有国家/地区前缀来获取电话号码的国家/地区.

样品:

$phoneVar = '4477809098888';  // uk - 44
$phoneVar = '15068094490';  // usa - 1
$phoneVar = '353669767954';  // ireland - 352
$phoneVar = '2348020098787';  // nigeria - 234

如果$phoneVar被分配了任何电话号码值,则需要能够从中获取国家/地区前缀.

像这样的东西:

echo getCountryPrefix($phoneVar, $countries_prefix_array);

使用substr很容易实现

// $countryPrefix = substr($phoneVar, 0, 3);

但是国家/地区的前缀长度不同.

很高兴能得到这方面的帮助.

解决方法:

好的,这是状态机的完美示例!

最简单的方法

$prefixes = array('44' => 'UK', '1' => 'USA', '352' => 'IRELAND', '234' => 'NIGERIA');
preg_match('/^('.implode('|',array_keys($prefixes)).')/', $phoneVar, $matches);
echo $prefixes[$matches[0]];

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...