Program LottoCad w wersji 2.32 to doskonałe narzędzie dla tych co lubią kombinacje z liczbami. To doskonały sposób na spędzanie wolnego czasu i zabawę w długie wieczory tej zimy i jesieni. Przewidywanie zdarzeń losowych i doskonałe zajęcie w tym czasie. Czasem nie jest to zabawa a czasem ma nawet dobre strony w postaci premii za realne wygrane Przeczytaj więcej w artykule na ten temat ...
Tablice w PHP to najbardziej użyteczne struktury danych których uzywa sie najczęściej. Tablice to przestrzeń w pamieci komputera w której przechowuje sie dane (np liczby, napisy a nawet inne tablice).Każda dana (liczba lub napis ...) jest indeksowana tzw kluczem. Klucz to rodzaj wskaznika (adresu) który nierozłącznie zwiazany jest z daną (liczbą,napisem czy inną tablicą).
Przykłady : Uwaga po deklaracji tablic używam polecenia print_r($nazwa_tablicy). Polecenie to wyswietla (drukuje zawartość tablicy).
<? $tablica=array(); print_r($tablica); ?>
Po uruchomieniu skryptu w polu wyniki wyświetli się zawartość tablicy:
Array ( )
To deklaracja tablicy o nazwie $tablica przypisuje zmiennej $tablica, tablice pustą. Nie zawiera więc żadnego elementu.
$tablica=array(1,2,3,4); print_r($tablica);
Ta deklaracja przypisuje zmiennej $tablica, tablicę zawierajacą cztery elementy (przez analogię np do excela 4 komórki). Jeżeli nie podajemy kluczy to PHP automatycznie przypisuje klucze kolejnym komórka tablicy poczawszy od numeru 0. Tak wiec ta tablica ma 4 wartości (kom órki) o wartościach 1,2,3,i 4 oraz 4 klucze o wartosciach (0,1,2,3). Wiec wartości te są dostepne poprzez indeksowanie tablicy odpowiednim kluczem(adresem do komórki).
Wiec $tablica[0]=1, $tablica[1]=2, $tablica[2]=3,$tablica[3]=4.Po uruchomieniu skryptu w polu wyniki wyświetli się zawartość tablicy:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
Wartości elementów tablic łatwo zrozumieć mozna przez analogię do arkuszy excela : Jak widać to też jest tablica i wiersz 1 wskazuje na dana z komórki z wartoscia 1 itd. Jedyna różnica pomiedzy jak tu wystepuje to to że excel indeksuje wiersze od jedynki, PHP indeksuje automatycznie od zera. Ale to zadna przeszkoda, indeksowanie od zera to zaleta. Ale jak tak bardzo chce mieć tak jak w excelu wówczas klucze podaje sie jawnie
$tablica=array("1"=>1,"2"=>2,"3"=>3,"4"=>4); print_r($tablica);
Po uruchomieniu skryptu w polu wyniki wyświetli się zawartość tablicy:
Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 )
i jest tak samo jak w excelu powyżej. teraz klucze podane są jawnie a ponieważ klucze to w sumie napisy ( w PHP nie ma jawnych deklaracji zmiennych) to nalezy je w deklaracjach "ręcznych" jak powyżej obejmowac znakami cudzysłowia "klucz".
Kluczami nie musza byc liczby, moga byc dowolne napisy. W excelu też oprócz adresacji (kolumna,wiersz) mozna nadać kazdej komórce dowolną nazwę.
Tak więc mozemy dla przykładu naszą tablicę zdeklarować tak:
$tablica=array("wiersz 1"=>1,"wiersz 2"=>2,"wiersz 3"=>3,"wiersz 4"=>4); print_r($tablica);
Po uruchomieniu skryptu w polu wyniki wyświetli się zawartość tablicy:
Array ( [wiersz 1] => 1 [wiersz 2] => 2 [wiersz 3] => 3 [wiersz 4] => 4 )
Jak wspomniałem wcześniej wartościami kluczy moga być napisy lub liczby. Klucze nie muszą zachowywac kolejności.Wartosci elementów tablicy moga być nastepnymi tablicami itd itd. Jeżeli element tablicy zawiera inną tablice to ta tablica jest już wielowymiarowa. Znów posłużę sie przykładem, juz z dziedziny gier losowych. Jedną z tablic przekazywana za kazdym wywołaniem skryptu PHP w LottoCadzie jest tablica losowań. Ta tablica ma budowę :
[0] => Array ( [0] => 2004-02-25 [1] => 9 [2] => 10 [3] => 21 [4] => 23 [5] => 31 ) [1] => Array ( [0] => 2004-02-26 [1] => 10 [2] => 16 [3] => 23 [4] => 27 [5] => 35 )
Klucze to numery losowań (zaczynając od zera) klucz zero wskazuje na pierwsze losowanie w bazie losowań. Każdy klucz wskazuje na tablicę o sześciu elementach, czyli polecenie $losowanie[0] wskazuje na tablicę :
Array ( [0] => 2004-02-25 [1] => 9 [2] => 10 [3] => 21 [4] => 23 [5] => 31 )
w której element [0] to data losowania, a elementy [1]..[5] to kolejne liczby wylosowane w tym losowaniu. Analogią do excela bedzie tablica w excelu :
Tu mamy właśnie tablicę dwuwymiarową, w excelu dwa wymiary to podstawa jednego arkusza. Dwa wymiary(kolumny i wiersze) maksymalnie mozna zmiescić na arkuszu.
Trzecim wymiarem mogą być w Excelu, kolejne arkusze. I na tym praktycznie możliwości naszej wyobraźni i możliwości Excela się kończą.
W PHP ilość wymiarów tablic jest nieograniczona a własciwie ograniczona tylko pojemnością pamięci. Jak później zobaczycie tablice 3,4 wymiarowe bardzo często się stosuje w skryptach.
Tablice nie tylko deklaruje się jawnie, najczęściej tworzone są one w czasie działania programu (dynamicznie).
Jako wynik przeróżnych pętli obliczeniowych.
Poniższy przykład w pętli /For(...)/ zmienia zmienną $j od wartości 0 do wartości 99, i tworzy tablicę o 100 elementach(komórkach).Dwie podobne petle (petla w petli- uwaga to warynek konieczny, petla wewnetrzna MUSI całkowicie być umieszczona w pętli wewnetrznej) :
<? $tablica=array(); for ($j=0;$j<100;$j++) { $tablica[]=$j; } print_r($tablica); ?>
Pętle ponizej tworzą tablicę dwuwymiarową 100 * 100 komórek.
<? $tablica=array(); for ($j=0;$j<100;$j++) { // początek pętli zewnetrznej for ($i=0;$i<100;$i++) { // początek pętli wewnetrznej $tablica[$j][$i]=$j; } // koniec pętli wewnetrznej } // koniec pętli zewnetrznej // petla wewnetrzna MUSI byc zamknięta całkowicie wewnątrz petli zewnetrznej print_r($tablica); ?>
Wielkie bogactwo funkcji obsługujacych tablice (array) w PHP, powoduja ze obrabianie tablic jest niezwykle skutecznym środkiem do osiagniecia zamierzonych celów czyli skryptu tworzacego nowe statystyki czy obliczenia. Mnogość przykładów znajdziecie w przedtłumaczonym na Polski manualu (podręcznik) PHP. Polecam wpisac w przeglądarce - Google "PHP Manual CHM" i z pewnoscią znajdziecie polską wersję. Plik ten jest też stosowany jako plik pomocy do PHP w LC.