• ⚡️ Последний шанс: Вебинар по пентесту стартует через 30 минут!

    Друзья, ровно через 30 минут (8 июля в 19:00) начинается наш практический вебинар по пентесту и поиску уязвимостей!

    Если вы хотите:
    🕵️‍♀️ Узнать, как находить и эксплуатировать уязвимости в веб-приложениях.
    💡 Получить ценные инсайты от настоящего эксперта.
    🚀 Сделать решительный шаг в мир кибербезопасности.
    То этот вебинар для вас!

    Ведущий вебинара – Александр Медведев – эксперт с более чем 10-летним опытом в сфере информационной безопасности, пятикратный победитель Standoff и обладатель престижных сертификаций: OSWE, OSCP, PNPT, CEH, CWAPT.

    Успейте присоединиться! Зарегистрироваться сейчас

    Возникли сложности с регистрацией? Пишите нам: @Codeby_Academy
    Будем вас ждать!

Занесение в массив и сравнение значений с ним.

  • Автор темы Автор темы spzrk
  • Дата начала Дата начала
S

spzrk

Всем доброго времени суток...
Мне нужно сделать выборку нескольких случайных элементов, так, чтобы они не повторялись.
Не могу разобраться с массивом.
Код:
<html>
<body>
<?php
$i = 0;
$imax = 14;
$max = 30;
$array = array();
#$rnd = rand (1,$max);
#$array[$i]= $rnd;
while ($i <= $imax) {
$rnd = rand (1,$max);
if $rnd != $array[$i] {
$array[$i]= $rnd;
echo "<br>".$rnd;
$i=$i+1;
}
}
#echo $array[$i];
?>
</body>
</html>
 
Ещё новичок в пхп, не знаю как правильнее сделать.

Я хочу вывести 15 рандомных чисел так, чтобы они не пвторялись.
Для этого решил создать массив и вводить туда каждое выбранное число.
В дальнейшем проверяю выбранное число с элементами массива. При совпадении выбираю число заного, а при совпадении зановсим его в массив и выбираем следующее.

На выходе получается белый экран.
То ли где-то знак упустил, то ли с массивами перемудрил.
 
Я задумал сделать проверку вот так, но видно ступил. Ведь проверит только одно значение:
if $rnd != $array[$i] { $array[$i]= $rnd; echo "<br>".$rnd; $i=$i+1; }

Подскажите как луче оранизовать проверку. Через циклы for или while?
 
Тут не нужны форы. Тут нужно использовать ассоциативные массивы.
Код:
while (count($temp) !== 15) {
$temp[ rand() ] = 1;
}
$my_numbers = array_keys($temp);
Красиво и легко.
 
Да только как же быть если rand() повториться? Никакой ошибки не будет? просто тихо продолжит работать?
Ну повториться и повториться... Нового элемента в массив не добавиться. Будет крутиться в цикле пока не наберет 15 уникальных ключей.
Какие нужны ошибки? Зачем?
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab