2012-05-07 66 views
1

我需要把這個電話號碼:分隔符添加到一個電話號碼

5555555555 

到這個字符串分隔符:

"555.555.5555" 

這裏是我的代碼:

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

,它退貨說明:

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

我在做什麼錯?

+0

['explode'](http://php.net/manual/en/function.explode.php)的第一個參數是分隔符; '2'的目的是什麼? –

+0

即時通訊新的PHP爆炸,我認爲這意味着爆炸不是0或1,但在2 – user979331

回答

4

很多方法可以做到這一點,正則表達式不是必需的,但這裏有一個很好的和容易的W /正則表達式:

$phone = '5555555555'; 
echo preg_replace('/(\d{3})(\d{3})(\d{4})/', "$1.$2.$3", $phone); 

乾杯

+0

完美的工作! – user979331

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位數字。

+0

這個作品呢! – user979331

1

你可能不希望使用,因爲你發生爆炸在字符串中沒有已知的分隔符來導致分割。你可以使用str_split($電話,3),這會給你的3 3個數組元素,併爲1。4保持前兩個合併在一起的最後兩個進入你的第三個數組elemnent:

$phone = 5555555555; 
$phoneArray = str_split($phone,3); 
$phoneArray[2] .= phoneArray[3]; 

print_r($phoneArray); 

希望這有助於。