Вместо того, чтобы угадывать числа и добавлять их, если они еще не существуют, создается массив из оставшихся чисел (с использованием комбинации range()
и array_diff()
).Затем он выбирает числа из этого массива (используя shuffle()
и array_shift()
) и добавляет их в конец $checkrandom
.
$checkrandom=array(1,2,3,4);
$numbers = array_diff(range(1,10), $checkrandom);
for($i=0;$i<3;$i++){
shuffle($numbers);
$checkrandom[]=array_shift($numbers);
}
print_r($checkrandom);
Или, как указано в deceze, просто перетасуйте оставшийся массиви используйте array_slice()
, чтобы извлечь первые 3 числа ...
$checkrandom=array(1,2,3,4);
$numbers = array_diff(range(1,10), $checkrandom);
shuffle($numbers);
$checkrandom = array_merge($checkrandom, array_slice($numbers, 0, 3));
print_r($checkrandom);