PHPdontLang
@PHPdontLang

Как сделать числа уникальными?

Здравствуйте. как сделать числам уникальность?
<?php
	$array = rand(0, 100) . ', ' . rand(0, 100) . ', ' . rand(0, 100) . ', ' . rand(0, 100) . ', ' . rand(0, 100);

	


	echo $array; 
 
?>
  • Вопрос задан
  • 289 просмотров
Решения вопроса 3
Adamos
@Adamos
Написать функцию, которая в свой статический массив записывает числа, которые уже выдала, и генерирует, сверяя с этим массивом. Либо класс с аналогичным функционалом, если требуется использовать генератор несколько раз, например.
Ответ написан
Комментировать
@Stalinko
PHP'шник и фрилансер до мозга костей
$array = [];
for ($i = 0; $i < 5; ++$i) {
    do {
        $new_value = random_int(0, 100);
    } while (in_array($new_value, $array));
    $array[] = $new_value;
}

print_r($array);
Ответ написан
dyuriev
@dyuriev
A posteriori
Генерирует 3 строки 5 чисел длиной
Все числа в получившихся строках будут уникальны (одно и тоже число не встретится как и в одной строке, так и в двух разных строках)

$length = 5; //количество чисел в генерируемой строке
$count = 3;  //количество генерируемых строк

//создаем массив из чисел по порядку от 0 до 100
$r = range(0, 100);

//перемешиваем его
shuffle($r);

for ($i = 0; $i <= $count-1; $i++) {
	// берем кусок массива $r длиной $length и сдвигая первый элемент для каждой строки на $i * $length
	$arr = array_slice($r, $i * $length, $length);
	// преобраузем получившийся массив в строку с разделителем ", "
	$array[] = implode(', ',$arr);
}

print_r($array);


Результат:

Array
(
    [0] => 80, 94, 91, 72, 63
    [1] => 33, 100, 12, 75, 18
    [2] => 69, 0, 43, 76, 61
)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы