Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z pętlą
Forum PHP.pl > Forum > Przedszkole
serror
Witam!
Mam problem chce wylosować np. 4 liczby z zakresu od 1 do 6. Mam coś takiego:
  1. for( $x = 1; $x = 4; $x++ ){
  2. $liczba = rand(1,6);
  3. }
  4. echo ("$liczba");

Wiem że jest to źle i tu jest problem. Umiem tylko zrobić pętle wypisującą liczby np od 1 do 10 ale nie potrafię zrobić pętli powtarzającej pewną czynność określoną ilość razy. Zapewne jest to bardzo proste ale proszę o pomoc. rolleyes.gif
ziemekp
for ($i=1; $i<5; $i++) ?
tehaha
  1. <?php
  2. $liczby = array();
  3. for( $x = 1; $x <= 4; $x++ )
  4. {
  5. $liczby[] = rand(1,6); // w pętli losujemy liczby i zapisujemy je w tablicy
  6. }
  7. print_r($liczby); // podgląd tablicy z wylosowanymi liczbami
  8. echo "<br/>";
  9. $liczby_pokaz = implode(', ', $liczby); // scalamy wszystkie elementy tablicy rozdzielając je przecinkiem
  10. echo $liczby_pokaz;
  11. ?>
serror
a jak losować liczby w taki sposób aby się nie powtarzały? Trzeba sprawdzić w tablicy czy taka liczba juz jest już wylosowana a jeśli tak to powtórzyć pętle?
Jak to zrobić?
tehaha
  1. <?php
  2. $liczby = array();
  3. while(count($liczby)<4)
  4. {
  5. $new_liczba = rand(1,6);// losujemy liczbę
  6. if(!in_array($new_liczba, $liczby))// jeżeli liczba nie znajduje się w tablicy to ją do niej dodajemy
  7. {
  8. $liczby[] = $new_liczba;
  9. }
  10. }
  11. print_r($liczby); // podgląd tablicy z wylosowanymi liczbami
  12. echo "<br/>";
  13. $liczby_pokaz = implode(', ', $liczby); // scalamy wszystkie elementy tablicy rozdzielając je przecinkiem
  14. echo $liczby_pokaz;
  15. ?>
athei
Kod
$zakres = range(1, 6);
shuffle($zakres);
$liczby = array_slice($zakres, 0, 4);
print_r($liczby);
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.