我需要转这个电话号码:
5555555555
带分隔符的字符串:
"555.555.5555"
这是我的代码:
$phone = 5555555555;
$phoneArray = explode(2, $phone);
print_r($phoneArray);
它返回这个:
Array ( [0] => 555 [1] => [2] => 55555 )
我究竟做错了什么?
你需要更多这样的东西:
$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 位数字。
有很多方法可以做到这一点,并且不需要 RegEx,但这里有一个很好且简单的带有 RegEx 的方法:
$phone = '5555555555';
echo preg_replace('/(\d{3})(\d{3})(\d{4})/', "$1.$2.$3", $phone);
干杯
您可能不想使用explode,因为您在字符串中没有已知的分隔符来导致拆分。您可以使用 str_split($phone,3) 这将为您提供 3 个 3 的数组元素和 1 的第 4 个。保留前两个并将最后两个合并到您的第三个数组元素中:
$phone = 5555555555;
$phoneArray = str_split($phone,3);
$phoneArray[2] .= phoneArray[3];
print_r($phoneArray);
希望有帮助。