Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: rand();
Forum PHP.pl > Forum > PHP
dexter_m
Witam!

Czy funkcja rand(); działa tylko na liczbach np.

  1. <?
  2.  
  3. $i = rand(1, 100);
  4. echo ($i);
  5.  
  6. ?>


Mianowicie chodzi mi o to czy jest jakaś funkcja, lub inne rozwiązanie które zastąpiło by ten niepoprawny zapis tak aby był poprawny:

  1. <?php
  2. //BEGIN
  3.  
  4. $cytat1 = &#092;"...To co wiemy, jest tylko kroplą, to czego nie wiemy, to cały ocean...\";
  5. $cytat2 = &#092;"...Dwie rzeczy są nieograniczone - wszechświat i ludzka głupota...\";
  6.  
  7. $i = rand($cytat1, $cytat2);
  8. echo &#092;"$i\";
  9.  
  10. //END
  11. ?>


Chciałbym aby skrypt generował losowo cytaty. Z góry dzięki za odpowiedzi!
Dexter smile.gif
legorek
Robisz tabele z cytatmi i losujesz klucze.
dexter_m
Zrobiłem coś takiego:

  1. <?
  2.   //script by Juri
  3.   
  4.   $cytaty = array(1 => '...To co wiemy jest tylko kroplą, to czego nie wiemy, to cały ocean...', 2 => '...Są dwie rzeczy niezastąpione: wszechświat i ludzka głupota...', 3 => '...Liczba jest istotą wszystkich rzeczy...', 4 => 'Liczba jest istotą wszystkich rzeczy');
  5.   $losuj_cytaty = rand($cytaty);
  6.  
  7. echo &#092;"$losuj_cytaty\";
  8.  
  9. ?>


i wyświetla mi błąd:

Warning: rand() expects exactly 2 parameters, 1 given in c:\usr\apache\httpd\html\cytat.php on line 5


Jeszcze jedna taka mała uwaga, ja z tej tablicy nie chcę wyciągnąć kluczy tylko wartości, (chociaż...mógłbym też zrobić klucze jako ciągi (cytaty) i wyciągnąć klucze)

Co zminić, gdzie błąd? Pozdrawiam, Dexter.
Ociu
Cytat
int rand ( int min, int max )

skorzystaj z array_rand, tak jak pisałem wyżej.
dexter_m
Dobra, napisałem coś takiego:

  1. <?
  2.   //script by Juri
  3.  
  4.   $cytaty = array(1 => '...To co wiemy jest tylko kroplą, to czego nie wiemy, to cały ocean...', 2 => '...Są dwie rzeczy niezastąpione: wszechświat i ludzka głupota...', 3 => '...Liczba jest istotą wszystkich rzeczy...', 4 => 'Liczba jest istotą wszystkich rzeczy');
  5.  $losuj_cytaty = array_rand($cytaty); //umyślnie nie wpisuję drugiej wartości
  6.   echo &#092;"$losuj_cytaty\";
  7. ?>


wszystko byłoby w porządku gdyby nie to że skrypt zwraca mi klucze, a mi zależy na wartościach ;(

jak zrobić by zwracane były wartości czyli cytaty?

WIEM!!
Po prostu trzeba:

  1. <?php
  2.  
  3. $cytaty = array('...To co wiemy jest tylko kroplą, to czego nie wiemy, to cały ocean...' => '...To co wiemy jest tylko kroplą, to czego nie wiemy, to cały ocean...',);
  4.  
  5. ?>


i tak dalej...

Dzięki Ociu za podpowiedź, Kolejna udana przygoda z php! winksmiley.jpg

OSTATECZNY KOD generatora cytatów:

  1. <?
  2.   //script by Juri <dexter_m>
  3.  
  4.   $cytaty = array('...To co wiemy jest tylko kroplą, to czego nie wiemy, to cały ocean...' => '...To co wiemy jest tylko kroplą, to czego nie wiemy, to cały ocean...', '...Są dwie rzeczy niezastąpione: wszechświat i ludzka głupota...' => '...Są dwie rzeczy niezastąpione: wszechświat i ludzka głupota...', '...Liczba jest istotą wszystkich rzeczy...' => '...Liczba jest istotą wszystkich rzeczy...', '...Doświadczenie to suma błędów jakie popełniliśmy w życiu...' => '...Doświadczenie to suma błędów jakie popełniliśmy w życiu...');
  5.  $losuj_cytaty = array_rand($cytaty); //umyślnie nie wpisuję drugiej wartości
  6.   echo &#092;"$losuj_cytaty\";
  7. ?>
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.