我需要拨打这个电话号码:
5555555555
使用分隔符进入此字符串:
"555.555.5555"
这是我的代码:
$phone = 5555555555;
$phoneArray = explode(2, $phone);
print_r($phoneArray);
然后返回:
Array ( [0] => 555 [1] => [2] => 55555 )
我做错了什么?
答案 0 :(得分:4)
你需要更像这样的东西:
$number = '123456789';
$segments = array();
$segments[] = substr($number, 0, 3);
$segments[] = substr($number, 3, 3);
$segments[] = substr($number, 6, 4);
$number = implode('.', $segments); // Comes out to 123.456.7890
请注意,您首先要进行一些格式检查。你需要验证 他们实际上输入的是一个没有分隔符号的10位数字。
答案 1 :(得分:4)
有很多方法可以做到这一点,并且RegEx不是必需的,但这是一个很好的,很简单的一个/ RegEx:
$phone = '5555555555';
echo preg_replace('/(\d{3})(\d{3})(\d{4})/', "$1.$2.$3", $phone);
干杯
答案 2 :(得分:1)
您可能不想使用爆炸,因为您在字符串中没有已知的分隔符来导致分割。您可以使用str_split($ phone,3),这将为您提供3个数组元素,以及4个中的第4个。保留前两个并将最后两个合并到第3个数组elemnent中:
$phone = 5555555555;
$phoneArray = str_split($phone,3);
$phoneArray[2] .= phoneArray[3];
print_r($phoneArray);
希望有所帮助。