我有一个包含5000个本地区号代码的数据库,用于将区号与电话号码字符串分开。区号可以是其他区号的一部分。例如
0212 Solingen
02129哈恩
索林根区号是哈恩区号的一部分。
我使用的代码是
结果是" 03491 52023"这是错的;它应该是" 034915 2023"
<?php
$area_codes = array( '0350', '034', '034915', '03491', '0348', '0349', '03491', '034916', '034917',);
$phone = '0349152023';
foreach ($area_codes as $code) {
if (substr($phone, 0, strlen($code)) == $code) {
$phone_string = substr($phone, 0, strlen($code))." ".substr($phone, strlen($code));
}
}
if (!empty($phone_string)) {
echo $phone_string;
}
else {
echo "No AreaCode found.";
}
?>
感谢您的帮助。
答案 0 :(得分:0)
你只需要对数组进行排序,你就可以获得所需的输出:
$area_codes = array( '0350', '034', '034915', '03491', '0348', '0349', '03491', '034916', '034917',);
sort($area_codes);
$phone = '0349152023';
foreach ($area_codes as $code) {
$subString = substr($phone, 0, strlen($code)); // stored in var so no need to re-code for substr
if ($subString == $code) {
$phone_string = $subString." ".substr($phone, strlen($code));
}
}
if (!empty($phone_string)) {
echo $phone_string;
}
else {
echo "No AreaCode found.";
}
输出:
034915 2023