Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] funkcja rand() i sprawdzanie istnienia wygenerowanej liczby
Forum PHP.pl > Forum > Przedszkole
mpps
witam,
mam taką zagwozdkę:
  1. <?php
  2. function generate(){
  3. $i = 0;
  4. $maxilliczb = 5;
  5. while($i < $maxilliczb){
  6. echo rand(1, 100);
  7. $i++;
  8. }
  9. }
  10. generate();
  11. ?>

chcę sprawdzić, czy wśród wygenerowanych liczb losowych są takie, które się powtarzają i jeśli się powtarzają, to powtórzyć generowanie (dla uproszczenia wszystkich liczb, bo sprawa by się skomplikowała, gdyby dana liczba powtórzyła się np. ... 5 razy, czyli maksymalną ilość generowanych liczb winksmiley.jpg ).

wydaje mi się, że powinienem dodać wygenerowane liczby do jakiejś tablicy i w niej porównać wyniki, po czym wykonać akcję.

nie bardzo potrafię sobie poradzić z częścią zadania dotyczącą porównania liczb.
może ktoś z Was ma jakiś pomysł?
może się tym pomysłem podzieli? guitar.gif

pozdrawiam
m
nospor
wrzuc zbior liczb z ktorych bedziesz losowal do tablicy (range()), a nastepnie array_rand() - zwraca bez powtarzania
b_chmura
  1. <?php
  2. $ile  = 5; // ile cyfr
  3. $od = 1; $do = 50; // przedział
  4.  
  5. $range = range($od, $do);
  6. $rand = array_rand($range, $ile);
  7.  
  8. foreach($rand as $key)
  9. {
  10. echo $range[$key].', ';
  11. }
  12. ?>
mpps
bardzo dziękuję za pomoc.

dla usystematyzowania, dlaczego akurat ta tablica i ta funkcja:

range() - tworzy nam tablicę zawierającą przedział elementów
array_rand() - wybiera losowe elementy z tablicy i ma taką właściwość, że dany element może wybrać tylko raz?
nigdzie tego nie znalazłem w opisie funkcji...
b_chmura
a szukałeś?

- range
- array_rand
mpps
Cytat(b_chmura @ 6.05.2008, 15:10:28 ) *
a szukałeś?

- range
- array_rand


tak - napisałem, że nie znalazłem takiej informacji w opisie funkcji, a nie opisu funkcji
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.