-1

您如何随机化电话号码的最后 4 位数字?

鉴于:

$phone = '000-000-0000';

结果将是:

$phone = '000-000-1943';

其中1943是一个随机数

这可以使用 preg 之类的单行命令来完成吗?

或其他一些单行命令?

4

4 回答 4

5

substr适合从字符串的开头/结尾提取n 个字符;rand可用于生成随机数,sprintf可用于格式化数字。将所有三个功能放在一起:

$phone = '000-000-0000';
$phone = sprintf('%s%04d', substr($phone, 0, -4), rand(0, 9999));
echo $phone;
// 000-000-2317
于 2013-01-08T12:39:02.907 回答
4
$phone = preg_replace_callback('/\d{4}$/', function($m) {
    return str_pad(mt_rand(0, 9999), 4, '0');
}, $phone);
于 2013-01-08T12:38:13.247 回答
2

您可以将rand方法与str_pad方法一起使用。

$phone = '000-000-'.str_pad(rand(0,9999), 4, '0');
于 2013-01-08T12:39:59.977 回答
0
$phone = '000-000-0000';
$phone=explode('-',$phone);
$phone[2]=str_pad(rand(0,9999), 4, 0);
$phone=implode('-', $phone);
于 2013-01-08T12:40:52.770 回答