1

この電話番号を回す必要があります:

5555555555

区切り文字を使用してこの文字列に変換します。

"555.555.5555"

これが私のコードです:

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

そして、これを返します:

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

私は何を間違っていますか?

4

3 に答える 3

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桁の数字を入力したことを確認する必要があります。

于 2012-05-07T20:51:32.453 に答える
4

これを行う方法はたくさんあり、RegExは必須ではありませんが、RegExを使用した簡単な方法を次に示します。

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

乾杯

于 2012-05-07T20:55:09.173 に答える
1

文字列内に分割を引き起こす既知の区切り文字がないため、おそらくexplodeを使用したくないでしょう。str_split($ phone、3)を使用すると、3の3つの配列要素と1の4番目の配列要素が得られます。最初の2つを保持し、最後の2つを3番目の配列要素にマージします。

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

print_r($phoneArray);

お役に立てば幸いです。

于 2012-05-07T20:58:56.120 に答える