Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Było czy nie.
Forum PHP.pl > Forum > PHP
Michał2000
Witam,

Zdeklarowalem nowa funkcje losuj_liczba(1,49) ktora losule losowa liczbe z zakresu od 1 do 49. I mam taki skrypt:

  1. <?php
  2. $a[0] = losuj_liczba(1,49);
  3. $a[1] = losuj_liczba(1,49);
  4. $a[2] = losuj_liczba(1,49);
  5. $a[3] = losuj_liczba(1,49);
  6. $a[4] = losuj_liczba(1,49);
  7. $a[5] = losuj_liczba(1,49);
  8. ?>


I jak sprawdzic czy jakas liczba nie powtarza sie? Chce aby skrypt wylosowal 6 roznych liczb a nie takich samych.
kszychu
Raczej in_array()
nospor
Rozwiązania kolegów wymuszają sprawdzanie czy wartości się powtarzają i dogenerowywanie numerów dopóki nie będą unikalne. A ja ci proponuję coś takiego:
  1. <?php
  2. $tab = array();
  3. for ($i = 1; $i <= 49; $i++)
  4. $tab[] = $i;
  5.  
  6. $tab2 = array_rand($tab, 6);
  7. foreach ($tab2 as $r)
  8.  echo $tab[$r].'<br />';
  9.  
  10. ?>
kszychu
@nospor: dobre, tylko nieskalowalne. Duże tablice mogą niepotrzebnie zapchać pamięć. A, zdążyłem się o tym przekonać, czasami tej pamięci może być za mało.
nospor
@kszychu masz w zupełności rację. A czkolwiek w tym przyapdku, chodzi tu zapewne o jakiegoś lotka i nie sądze aby tego typu tablicą zapchała pamięć
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.