<?php
//
function random_number_with_dupe($len = 6, $dup = 1, $sort = false) {
$num = range(0,9);
shuffle($num);
$num = array_slice($num, 0, ($len-$dup)+1);
if ($dup > 0) {
$k = array_rand($num, 1);
for ($i=0;$i<($dup-1);$i++) {
$num[] = $num[$k];
}
}
if ($sort) {
sort($num);
}
return implode('', $num);
}
echo '4 unique and 2 repetitive digits.'.PHP_EOL;
for ($i=0; $i<5; $i++) {
echo random_number_with_dupe(6, 2, true).PHP_EOL;
}
/*
4 unique and 2 repetitive digits.
235699
037789
034677
012249
033569
*/
echo '3 unique and 3 repetitive digits.'.PHP_EOL;
for ($i=0; $i<5; $i++) {
echo random_number_with_dupe(6, 3, true).PHP_EOL;
}
/*
3 unique and 3 repetitive digits.
015559
011147
111239
677789
456777
*/
echo '2 unique and 4 repetitive digits.'.PHP_EOL;
for ($i=0; $i<5; $i++) {
echo random_number_with_dupe(6, 4, true).PHP_EOL;
}
/*
2 unique and 4 repetitive digits.
068888
022229
018888
333378
000058
*/
echo '1 unique and 5 repetitive digits.'.PHP_EOL;
for ($i=0; $i<5; $i++) {
echo random_number_with_dupe(6, 5, true).PHP_EOL;
}
/*
1 unique and 5 repetitive digits.
788888
066666
799999
355555
244444
*/
echo '0 unique and 6 repetitive digits.'.PHP_EOL;
for ($i=0; $i<5; $i++) {
echo random_number_with_dupe(6, 6, true).PHP_EOL;
}
/*
0 unique and 6 repetitive digits.
888888
333333
777777
888888
777777
*/
echo 'All rules.'.PHP_EOL;
for ($i=0; $i<6; $i++) {
echo random_number_with_dupe(6, $i+1, true).PHP_EOL;
}
/*
All rules.
345789
003569
245666
000089
777778
555555
*/
echo 'All rules (random).'.PHP_EOL;
for ($i=0; $i<6; $i++) {
echo random_number_with_dupe(6, mt_rand(1, 6), true).PHP_EOL;
}
/*
All rules (random).
225678
222222
111359
444444
777778
233349
*/
preferences:
24.28 ms | 410 KiB | 5 Q