-1

電話番号の下 4 桁をどのようにランダム化しますか?

与えられた:

$phone = '000-000-0000';

結果は次のようになります。

$phone = '000-000-1943';

ここで、1943は乱数です

preg などを使用して、1 行のコマンドでこれを実行できますか?

または他の1行コマンド?

4

4 に答える 4

5

substr文字列の先頭/末尾からn文字を抽出するのに適しています。rand乱数の生成に使用sprintfでき、数値のフォーマットに使用できます。3 つの関数をすべてまとめると、次のようになります。

$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

str_padメソッドと一緒にrandメソッドを使用できます。

$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 に答える