如何随机分配电话号码的后4位数字?
给定:
$phone = '000-000-0000';
结果将是:
$phone = '000-000-1943';
其中1943为随机数
这可以在单行命令中完成吗?使用类似preg…
还是其他单行命令?
substr
适合从字符串的开头/结尾提取n字符;rand
可用于生成随机数,sprintf
可用于格式化数字。把这三个函数放在一起:
$phone = '000-000-0000';
$phone = sprintf('%s%04d', substr($phone, 0, -4), rand(0, 9999));
echo $phone;
// 000-000-2317
$phone = preg_replace_callback('/'d{4}$/', function($m) {
return str_pad(mt_rand(0, 9999), 4, '0');
}, $phone);
您可以将rand方法与str_pad方法一起使用。
$phone = '000-000-'.str_pad(rand(0,9999), 4, '0');
$phone = '000-000-0000';
$phone=explode('-',$phone);
$phone[2]=str_pad(rand(0,9999), 4, 0);
$phone=implode('-', $phone);