Добавить разделители к номеру телефона
Мне нужно включить этот номер телефона:
5555555555
в эту строку с разделителями:
"555.555.5555"
Вот мой код:
$phone = 5555555555;
$phoneArray = explode(2, $phone);
print_r($phoneArray);
и это возвращает это:
Array ( [0] => 555 [1] => [2] => 55555 )
Что я делаю неправильно?
3 ответа
Решение
Есть много способов сделать это, и RegEx не требуется, но вот хороший и простой с RegEx:
$phone = '5555555555';
echo preg_replace('/(\d{3})(\d{3})(\d{4})/', "$1.$2.$3", $phone);
ура
Вам нужно что-то вроде этого:
$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-значный номер без разделительных символов.
Вы, вероятно, не хотите использовать Explode, так как у вас нет известного разделителя в строке, чтобы вызвать разделение. Вы можете использовать str_split($phone,3), который даст вам 3 элемента массива из 3 и 4 из 1. Сохраните первые два и объедините последние два вместе в ваш 3-й элемент массива:
$phone = 5555555555;
$phoneArray = str_split($phone,3);
$phoneArray[2] .= phoneArray[3];
print_r($phoneArray);
Надеюсь, это поможет.