Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zrobic
Forum PHP.pl > Forum > Przedszkole
brekmar
  1. <?php
  2.  
  3. $liczby = array(&#092;"20\", \"21\", \"22\", \"23\", \"24\", \"25\", \"26\", \"27\", \"28\", \"29\", \"30\", \"31\", \"32\", \"33\", \"34\", \"35\", \"36\", \"37\", \"38\", \"39\", \"50\", \"51\", \"52\", \"53\", \"54\", \"55\", \"56\", \"57\", \"58\", \"59\", \"60\", \"61\", \"62\", \"63\", \"64\", \"65\", \"66\", \"67\", \"68\", \"69\" );
  4. srand ((float) microtime() * 10000000);
  5. $los = array_rand($liczby, 10);
  6.  
  7. foreach($los as $k => $v)
  8. {
  9. echo $liczby[$v].' ';
  10. }
  11. ?>


Mam taki skrypt, czy moze mi ktos powiedziec jak zrobic zeby z kazdej dziesiatki wylosowal conajmniej jedna liczbe.
crash
Z każdej dziesiątki, ale czego? Tablicy wejściowej czy pierwszego wyniku?
  1. <?php
  2. $liczby = range(20, 69 );
  3. // srand jest zbędne od php 4.2.0
  4. $los = array_rand($liczby, 10);
  5. $los2 = array_rand($los, 1);
  6. echo $los[$los2];
  7. ?>


  1. <?php
  2. $liczby = range(20, 69);
  3. $wynik = '';
  4. for($i = 0; $i < count($liczby); $i += 10)
  5. {
  6. $temp = array_slice($liczby, $i, 10);
  7. $los = array_rand($temp, 1);
  8. $wynik .= $temp[$los].' ';
  9. }
  10.  
  11. echo $wynik;
  12. ?>
dr_bonzo
  1. <?php
  2. srand ((float) microtime() * 10000000);
  3. for ( $i = 2; $i < 7; $i++ )
  4. {
  5. $liczby[] = rand( $i * 10, $i * 10 + 9 );
  6. }
  7.  
  8. print_r( $liczby );
  9. ?>

Losuje dokladnie jedna lcizbe z kazdej dziesiatki.
brekmar
To jest dobre dzieki bardzo, tylko ze on losuje mi liczby z tych 5 dziesiatek a ja bym chcial zeby losowal 10 liczb, ale takich zeby byly z kazdej dziesiatki.
netzah
wystarczy zmienic zakres petli....
dr_bonzo
  1. <pre>
  2. <?php
  3. for ( $i = 20; $i < 70; $i++ )
  4. {
  5. $liczby[ $i ] = $i;
  6. }
  7.  
  8. // podziel tablice na dziesiatki
  9. $temp = array_chunk( $liczby, 10, FALSE );
  10.  
  11. for ( $i = 0; $i < 5; $i++ )
  12. {
  13. // z kazdej dziesiatki wylosuj jedna liczbe
  14. $wylosowane[ $i ] = $temp[ $i ][ array_rand( $temp[ $i ] ) ];
  15.  
  16. // usun te wylosowane liczby
  17. unset( $liczby[ $wylosowane[ $i ] ] );
  18. }
  19.  
  20. // dolosuj 5 pozostalych liczb
  21. $temp_2 = array_rand( $liczby, 5 );
  22.  
  23. // dolacz je
  24. $wylosowane = array_merge( $wylosowane, $temp_2 );
  25.  
  26. // posortuj tablice
  27. sort( $wylosowane );
  28.  
  29. print_r( $wylosowane );
  30. ?>
  31. </pre>
brekmar
Wszystko ladnie, pieknie tylko ze ten skrypt nie dziala, pisze ze "fatal error on line 17", co teraz??
dr_bonzo
Teraz mi powiedz co dokladnie pisze w tym errorrze, i wypisz ta linie i podaj mi wersje php.
brekmar
pisze ze blad na lini 17 "fatal error", pisze mi ze nie ma takiej komendy jak "array_chunk", a korzystam z Apache na moim kompie a dokladnie php triad 2.1
czachor
Zainstaluj nowszą wersję php (swoją drogą wersję php możesz sprawdzić przez phpinfo()).
PS.
Nie "komendy" ale "funkcji" smile.gif
brekmar
A skad moge ja sciagnac (nowsza wersje)
hwao
www.php.net (najnowsza wersja php)
http://forum.php.pl/index.php?showtopic=6899
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.