将分隔符添加到电话号码

时间:2012-05-07 20:45:53

标签: php explode

我需要拨打这个电话号码:

5555555555

使用分隔符进入此字符串:

"555.555.5555"

这是我的代码:

$phone = 5555555555;
$phoneArray = explode(2, $phone);
print_r($phoneArray);

然后返回:

Array ( [0] => 555 [1] => [2] => 55555 )

我做错了什么?

3 个答案:

答案 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);

希望有所帮助。