Замените телефонный префикс нескольких форматов, используя php - PullRequest
0 голосов
/ 08 октября 2018

У меня есть массив:

    $phone_number = array ( 'phone' => '01219104579', 
    'phone' => '01219104579@abc.
    'phone' => '+8401219101219',
    'phone' => '01219104579/01219104479',
    'phone' => '841219104579@abc.com',
    'phone' => 'abcd01219104579@abc.com',
    'phone' => 'Hồ2101219104579@abc.com'
);

Мне нужно заменить весь префикс номера телефона (0121 или 121) на новый префикс номера (072 или 72):

$phone_number = array ( 'phone' => '0729104579', 
'phone' => '0729104579@abc.com', 
'phone' => '+840729101219', 
'phone' => '0729104579/0729104479', 
'phone' => '84729104579@abc.com',
'phone' => 'abcd0729104579@abc.com',
'phone' => 'Hồ210729104579@abc.com' ); 

Iпытался использовать PREG_REPLACE, но у меня проблема с 8401219101219, смена номера на 84072910729. Это должно быть 840729101219

Как мне обновить все телефонные номера, используя PHP

1 Ответ

0 голосов
/ 08 октября 2018

Этот код будет делать то, что вы хотите.Я предполагаю, что вы действительно хотите заменить 0121 или 121 на 072 или 72, поскольку именно это показывают ваши данные.Если вы действительно хотите заменить 122, просто измените 121 на 122 в регулярном выражении ниже:

$phone_numbers = array ('01219104579', 
'01219104579@abc.com',
'+8401219101219',
'01219104579/01219104479',
'841219104579@abc.com'
);

foreach ($phone_numbers as $phone_number) {
    $new_numbers[] = preg_replace('/\b(\+?84?0?|0)121/', '${1}72', $phone_number);
}
print_r($new_numbers);

Вывод:

Array
(
    [0] => 0729104579
    [1] => 0729104579@abc.com
    [2] => +840729101219
    [3] => 0729104579/0729104479
    [4] => 84729104579@abc.com
)
...