Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wylosowanie 5 zdań z kilku
Forum PHP.pl > Forum > Przedszkole
PawelC
Mógłby mi ktoś wyjaśnieć jak spośród 10 zdań wyświetlić 5 losowych? Zdania pobieram z pliku tekstowego jest ich 10 i chciałbym wyświetlić 5 losowych, probowałem róznych sposobów to zamiast całych zdań to wyświetlał mi po 2 litery z każdego zdania.
skowron-line
  1. <?php
  2. $file = file( 'plik.txt' );
  3.  
  4. for( i=0; i<=5; i++ ){
  5. echo $file[ rand( 0, 10 ) ] .'<br />';
  6. }
  7. ?>

mocno uproszczona wersja
PawelC
skowron-line a co w przypadku kiedy nieznam ilości zdań? To co wpisac zamiast tej 10 w rand? Do głowy jedynie co mi przychodzi to zliczyć ilość wierszy w pliku i wstawić tą ilość zamiast tej 10
phpion
@skowron-line:
Twój sposób dopuszcza powtórzenia.

Skorzystanie z file" title="Zobacz w manualu PHP" target="_manual oraz array_rand" title="Zobacz w manualu PHP" target="_manual zrobi to bez powtórzeń (chyba tongue.gif bo nigdy nie sprawdzałem).

Sprawdziłem: jest bez powtórzeń:
  1. <?php
  2. $array = range(1, 10); // czyli file()
  3.  
  4. $rand = array_rand($array, 5);
  5.  
  6. print_r($rand);
  7. ?>
marcio
Cytat
Do głowy jedynie co mi przychodzi to zliczyć ilość wierszy w pliku i wstawić tą ilość zamiast tej 10

No uzyj poprostu count()
pyro
  1. <?php
  2.  
  3. // daje ostateczne najprostsze rozwiazanie
  4.  
  5. $zdania = file('zdania.txt');
  6. shuffle($zdania);
  7. echo $zdania[0];
  8. echo $zdania[1];
  9. echo $zdania[2];
  10. echo $zdania[3];
  11. echo $zdania[4];
  12.  
  13. // itd...
  14. // dziala dobrze nawet jak nie znasz ilosci zdan, mozesz se ustawiac ilosc wyswiet
    lanych, wyzej jest ustawionych 5
  15.  
  16. ?>
PawelC
Działa jak należy, dzięki wszystkim za pomoc smile.gif
pyro zamiast tego 5 krotnego powtórzenia echo $zdania[]; wrzuciłem to w pętle for i przy jej pomocy mogę ustawiać ile chcę zdań wyświetlić.
skowron-line
Cytat
@skowron-line:
Twój sposób dopuszcza powtórzenia.


@pion napisałem że to uproszczona wersja
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.