Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Losowanie Bez Powtórzeń !
Forum PHP.pl > Forum > Przedszkole
cy3er
Hey !

Moze ktos mi podac kod który wygeneruje 9 losowych liczby z przedziału od $min do $max ? Chodzi mi o to żeby losowalo liczby bez powtórzeń (żeby w wyniku losowania nie bylo takich samych liczb - dla niekumatych ;-) ). Nie myslcie ze jestem lamerem.. probowalem zapisywac do tablicy wyniki losowania i sprawdzac czy liczba zostala juz wylosowana czy nie ale to nic nie dalo :| Please help me exclamation.gif!
sf
Jak moglo nie dac? Jesli ta liczba jest to losuj jeszcze raz. Poprostu wystarczy poprawic kod tongue.gif
cy3er
Parser nie wiadomo dlaczego wyskakuje exclamation.gif

  1. <?php 
  2.  
  3. $minCat = 1; 
  4. $maxCat = 9;  
  5.  
  6. $result = array() 
  7.  
  8. while($i<=$maxCat) 
  9. { 
  10.  $result = rand($minCat, $maxCat); 
  11.  if(!in_array($result , $cat) 
  12.  { 
  13. $cat[$i] = $result; 
  14. $i++; 
  15. } 
  16. } 
  17.  
  18. ?>


:/ i nie dziala :/
silent
  1. <?php 
  2.  
  3. $minCat = 1; 
  4. $maxCat = 9;  
  5.  
  6. $result = array() 
  7.  
  8. while($i<=$maxCat) 
  9. { 
  10.  $result = rand($minCat, $maxCat); 
  11.  if(!in_array($result , $cat) ) // zapomniałeś zamknąć drugi nawias
  12.  { 
  13. $cat[$i] = $result; 
  14. $i++; 
  15. } 
  16. } 
  17.  
  18. ?>
FiDO
A po co sie tak meczyc? Mozna prosciej:
  1. <?php
  2.  
  3. $tab = range ($min, $max);
  4. shuffle($tab);
  5.  
  6. $wylosowane = array_slice($tab, 0, 9);
  7.  
  8. ?>

lub tez:
  1. <?php
  2.  
  3. $tab = range($min, $max);
  4. $wylosowane = array_rand($tab, 9);
  5.  
  6. ?>

ale w tym drugim przypadku dostajesz w wyniku tablice indexow, na ktorych sa wylosowane elementy w $tab.
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.