Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wylosowanie elementu tablicy oraz wyświetlenie klucza
Forum PHP.pl > Forum > Przedszkole
Szunaj85
Mam zwykłą tablicę...
  1. $tablica = array('tekst 1', 'tekst 2', 'tekst 3', 'tekst 4');

...chciałbym wylosować z niej jeden element. I teraz jak to zrobić żeby przy okazji poznać jaki jest domyślny klucz tego wylosowanego elementu?
  1. $losuj_element = array_rand($tablica);
  2. echo $tablica[$losuj_element];

Jestem też ciekaw jak to zrobić przy tablicy asocjacyjnej.
  1. $tablica = array(1 =>'tekst 1', 2 =>'tekst 2', 3 =>'tekst 3', 4 =>'tekst 4');
aachi
Echm... klucz jest w zmiennej $losuj_element, bo array_rand() zwraca nie wartości tylko klucz.
Jeśli pytasz o coś innego to rozwin temat, bo nie bardzo wiem o co chodzi.
tomxx
Można użyć funkcji array_keys, służącej do wybierania wszystkich kluczy tablicy. Potem losujesz dowolny klucz, wybierasz dany element tablicy, a klucz pozostaje w zmiennej.
  1. $klucze = array_keys($tablica);
  2. $losuj_klucz = array_rand($klucze)
  3. $losuj_element = $tablica[$losuj_klucz];
KsaR
+ moje trzy grosze.
  1. $tablica = array(1 =>'tekst 1', 2 =>'tekst 2', 3 =>'tekst 3', 4 =>'tekst 4');
  2. shuffle($tablica); # miesza tablice(podmienia takze wszystkie klucze na nowe).
  3. echo $tablica[0]; # wyświetla pierwszy element tablicy, losowy.
com
$tablica = array('tekst 1', 'tekst 2', 'tekst 3', 'tekst 4'); i $tablica = array(1 =>'tekst 1', 2 =>'tekst 2', 3 =>'tekst 3', 4 =>'tekst 4'); to to samo, obie są asocjacyjne, nie masz tu jawnie zadeklarowanego klucza, wartość to nie klucz pomyliłeś z $arr = [ 'key'=>'tekst 1'];

I w twoim wypadku $losuj_element to po prostu klucz wink.gif
http://ideone.com/mhITRE

tomxx to już sztuka dla sztuki, prościej było żyć key() wink.gif
Szunaj85
Wydaje mi się, że dość dobrze wytłumaczyłem o co mi chodzi.
Tak czy inaczej "com" dobrze zinterpretował mój problem oraz pokazał rozwiązanie. Dziękuję. smile.gif
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.