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

Тема в разделе "PHP программирование", создана пользователем spzrk, 19 сен 2008.

  1. spzrk

    spzrk Гость

    Всем доброго времени суток...
    Мне нужно сделать выборку нескольких случайных элементов, так, чтобы они не повторялись.
    Не могу разобраться с массивом.
    Код (Text):
    <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>
     
  2. spzrk

    spzrk Гость

    Ещё новичок в пхп, не знаю как правильнее сделать.

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

    На выходе получается белый экран.
    То ли где-то знак упустил, то ли с массивами перемудрил.
     
  3. spzrk

    spzrk Гость

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

    Подскажите как луче оранизовать проверку. Через циклы for или while?
     
  4. Vovochka

    Vovochka Гость

    Тут не нужны форы. Тут нужно использовать ассоциативные массивы.
    Код (Text):
    while (count($temp) !== 15) {
    $temp[ rand() ] = 1;
    }
    $my_numbers = array_keys($temp);
    Красиво и легко.
     
  5. Vovochka

    Vovochka Гость

    Ну повториться и повториться... Нового элемента в массив не добавиться. Будет крутиться в цикле пока не наберет 15 уникальных ключей.
    Какие нужны ошибки? Зачем?
     
Загрузка...

Поделиться этой страницей