Menu
Strona główna
Hacking
Programowanie
Telefonia Komórkowa
Kody do Gier
Linux
Dlaczego?
Programowanie w Delphi
Mapa strony
 Programy
Systemy
Artykuły PDF

Security

Skanery
Sniffery
Security

Windows

Użytkowe
Przegl±darki graficzne
Kodeki
Narzędzia plikowe
Narzędzia dyskowe
Narzędzia systemowe
Sterowniki
Szyfrowanie danych
Zarz±dzanie hasłami
Zarz±dzanie rejestrem
£aty i Patche
Zarz±dzanie pamięci±
Synchronizacja czasu
Nagrywanie płyt
Free Antivirus (Darmowe Antyvirusy)
Sterowniki
Obróbka d¼więku
Edycja wideo

Internetowe

Bezpieczeñstwo
Programy P2P
Komunikatory
Dodatki do przegl±darek
Klienty poczty elektronicznej
Narzędzia Antyspamowe
Przegl±darki grup dyskusyjnych
Przegl±darki Offline
Serwery poczty elektronicznej
Telefonia komórkowa
Wyszukiwarki internetowe
Zdalny dostęp
Cybernianie
Klienty FTP
Narzędzia internetowe
Prywatnośc
Przegl±darki internetowe
Serwery FTP
Serwery WWW
Wspomagacze ści±gania
Zarz±dzanie sieci± lokaln±

Tuning Systemu

Diagnostyka i testowanie
Inne
Rozszerzenia pulpitu
Tapety na pulpit
Tuning Systemu
Ikony
Powłoki
Tuning sprzętu
Wygaszacze ekranu

Programowanie

Kompilatory
Biblioteki i komponenty
Bazy danych
Edytory programistyczne
¦rodowiska programistyczne
Debugery
Tworzenie wersji instalacyjnych

Webmastering

Użytkowe
Kursy

Linux

Użytkowe
Internetowe
Multimedialne

Programy biurowe

Programy dla firm
Pakiety biurowe
Administracja
Edytory tekstu
Grafika prezentacyjna
Kadry i płace
Wspomaganie projektowania
Zarz±dzanie projektami
Bazy danych
Finanse i księgowośc
Handel
Programy ewidencyjne
Zarz±dzanie informacj± osobist± (PIM)
 Download GRY
Pelne Wersje GIER
 Artykuy > Programowanie > Kurs PHP - Tablice Cześć 5

1. Tablice

Tablice są bardzo specyficznym typem zmiennych - są to, najprościej mówiąc, zmienne zawierające w sobie uporządkowany zbiór zmiennych. Do zmiennych tych uzyskuje się dostęp przez liczbę w nawiasie kwadratowym podane bezpośrednio po nazwie zmiennej - tablicy. Liczba ta to tak zwany indeks - numer kolejny zmiennej w tablicy. Tak samo przypisuje się wartość do tablicy. Przykład:


<?

$tablica
[0] = "Wpis numer 0";
$tablice[1] = "Wpis numer 1";
$tablica[2] = "Wpis numer 2";

echo 
$tablica[2]; // Wyświetlony zostanie napis "Wpis numer 2";

?>

Aby poprostu dodać kolejny wpis na końcu tabeli wystarczy przy przypisywaniu wartości nie wpisywać indeksu do nawiasów kwadratowych. Jeśli w ten sposób dodawane są wpisy do nowej tablicy, to pierwszy wpis ma indeks 0.

Indeks można też podawać ze zmiennej, a nawet z innej tablicy czy funkcji:


<?

$tab1
[] = 1;
$tab1[] = 0;
$tab1[] = 3;
$tab1[] = 2;

$tab2[] = "Pierwszy";
$tab2[] = "Drugi";
$tab2[] = "Trzeci";
$tab2[] = "Czwarty";

echo 
$tab2[$tab1[2]];

?>

Elementem tablicy może być każdy typ zmiennej (z innymi tablicami i obiektami włącznie).

2. Tablica asocjacyjna

W PHP występuje też inny rodzaj tablic, tak zwane tablice asocjacyjne (zwane też czasem haszami - hash table). Są to tablice, w których zamiast indeksów liczbowych używa się identyfikatorów znakowych (kluczy):


<?

$tablica
["imie"] = "Jan";
$tablica["nazwisko"] = "Kowalski";
$tablica["adres"] = "Polna 1";

echo 
$tablica["imie"]." ".$tablica["nazwisko"].", ul. ".$tablica["adres"]."\n";

?>

3. Przeglądanie tablic

Bardzo często zachodzi potrzeba wykonania jakiejś operacji na wszystkich elementach tablicy. Sprawa jest prosta jeśli tablica jest zwykłą tablicą z indeksami liczbowymi i znamy ilość tych elementów:


<?

$tbl
[] = 1;
$tbl[] = 2;
$tbl[] = 3;
$tbl[] = 4;
$tbl[] = 5;

for( 
$x 0$x 5$x++ ) {   // Pętla wykona się 5 razy (0...4)
   
   
echo $tbl[$x];

}

?>

Sprawa się trochę komplikuje jeśli nie znamy ilości elementów tablicy. Wtedy z pomocą przychodzi funkcja count( $nazwa_tablicy ). Zwraca ona ilość elementów w tablicy podanej jako parametr. Wtedy pętla wygląda tak:


<?

$tbl
[] = 1;
$tbl[] = 2;
$tbl[] = 3;
$tbl[] = 4;
$tbl[] = 5;

for( 
$x 0$x count($tbl); $x++ ){

   echo 
$tbl[$x];
   
}

?>

Jeszcze trudniej jest jeśli konieczne jest przejrzenie tablicy asocjacyjnej, ale i to da się załatwić. W tym przypadku należy skorzystać z funkcji list() i each(). Nie będę omawiał ich działania - jesli kogoś to interesuje, to odsyłam do manuala PHP. Przy przechodzeniu przez tablice asocjacyjne trzeba wykorzystać pętlę while:


<?

$tablica
["imie"] = "Jan";
$tablica["nazwisko"] = "Kowalski";
$tablica["adres"] = "Polna 1";

while( list(
$klucz$wartosc) = each($tablica) )
   echo 
"$klucz => $wartosc<BR>";

?>

Jak widać, w każdej iteracji pętli mamy dostępne 2 zmienne, przyjmujące wartości kolejnych kluczy i wartości przypisanych tym kluczom.

4. Sortowanie tablic

PHP ofertuje cały zestaw funkcji służących do sortowania tablic. Są to: asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), i uksort(). Większość funkcji (oprócz trzech ostatnich) przyjmuje jeden parametr: zmienną zawierającą tablicę do posortowania. ¯adna z funkcji nie zwraca żadnego wyniku. Opiszę teraz kolejno działanie poszczególnych funkcji:

  • asort() - sortuje tablice asocjacyjne zachowując przypisanie kluczy do wartości:
    <?

    $owoce 
    = array ("d"=>"mango""a"=>"papaja""b"=>"banan""c"=>"aronia");
    asort ($owoce);
    reset ($owoce); // Funkcja ta powoduje powrót do pierwszego elementu tablicy
    while (list ($klucz$wartosc) = each ($owoce)) {
        echo 
    "$klucz = $wartosc\n";
    }

    ?>
    Wynikiem działania powyższego przykładu powinno być:

    c = aronia
    b = banan
    d = mango
    a = papaja

  • arsort() - sortuje w odwrotnej kolejności tablice asocjacyjne zachowując przypisanie kluczy do wartości. Funkcja prawie identyczna jak poprzednia, tyle że dane sortowane są "od tyłu".
  • ksort() - sortuje tablice asocjacyjne według kluczy. Powyższy przykład po podmianie funkcji asort na ksort powinna dać taki wynik:

    a = papaja
    b = banan
    c = aronia
    d = mango

  • rsort() - sortuje zwykłe tablice (nie asocjacyjne) w odwróconej kolejności
  • sort() - sortuje zwykłe tablice (nie asocjacyjne) w kolejności alfabetycznej
  • uasort() - funkcja sortująca tablice asocjacyjne za pomocą zdefiniowanej przez użytkownika funkcji porównującej elementy (nazwa funkcji jest podawana za pomocą drugiego parametru)
  • usort() - funkcja sortująca zwykłe tablice za pomocą funkcji zdefiniowanej przez użytkownika
  • uksort() - funkcja sortująca tablice asocjacyjne według klucza za pomocą funkcji zdefiniowanej przez użytkownika.

W trzech ostatnich funkcjach sortujących trzeba jako drugi parametr podać funkcję porównującą elementy tablicy. Jak definiuje się funkcje opisane jest w jednym z następnych rozdziałów. Funkcje takie pobierają 2 argumenty. Zwracane jest 0 jeśli argumenty są sobie równe, -1 jeśli pierwszy argument jest mniejszy od drugiego a 1 jeśli jest większy.

5. Tworzenie ciągów z tablic i odwrotnie

PHP umożliwia zamianę ciągów na tablice i odwrotnie. Zamiana ciągu na tablicę jest bardzo przydatna jeśli zachodzi potrzeba wyciągnięcie jakiegoś fragmentu danych z ciągu. Załóżmy że w odczytaliśmy z pliku z danymi (o odczycie z plików w jednym z kolejnych rozdziałów) linię z logu zapisanego przez licznik WWW: "12/11/2000;19:23:33;Netscape Navigator;192.168.1.1". Jak widać dane rozdzielone są średnikami. Do rozdzielania ciągów na tablicę służy funkcja explode(). Jako pierwszy parametr trzeba do niej podać znak lub dłuższy ciąg który oddziela kolejne pola, jako drugi ciąg do rozdzielenia. Opcjonalnie można podać trzeci argument, który oznacza maksymalną liczbę pól - jeśli jest ich więcej niż ta liczba, to ostatnie pole będzie zawierało wszystkie pozostałe pola. Funkcja zwraca tablicę zawierającą kolejne pola. W przykładzie z danymi z licznika wywołanie funkcji powinno wyglądać tak:


<?

$tablica 
explode(";"$dane);

?>

Jest także rozszerzona wersja funkcji explode: split(). Różni się ona tym, że zamiast prostego ciągu znaków rozdzielających pola, akceptuje ona wyrażenia regularne (co to jest wyrażenie regularne mniej więcej wyjaśniono w rozdziale dotyczącyn ciągów).

Czasem potrzebne jest działanie w drugą stronę: złącznie pól tablicy w jeden ciąg, w którym pola oddzielone są jakimś znakiem (lub kilkoma). Do tego służy funkcja implode(). Jako pierwszy parametr podawany jest ciąg za pomocą którego "sklejane" są elementy tablicy, a jako drugi właśnie tablica do posklejania. Zwracany jest ciąg zawierający posklejane elementy. Jako przykład zastosowania może posłużyć właśnie zapisywanie danych o użytkowniku w aplikacji licznika odwiedzin - tablica zawiera dane o odwiedzającym, a potrzebny jest ciąg pooddzielany średnikami. Wtedy wywołanie funkcji powinno wyglądać tak:


<?

$dane 
implode(";"$tablica);

?>

komentarz[3] |

Copyright 2006 - 2007 E-comet.info. Wszelkie prawa zastrzeone.

programy,artykuy,gry online,teledyski,filmiki,smieszne reklamy,sterowniki,kodeki,programy,program,download, downloads,security,bramka sms, teledyski,antywirusy,darmowe free program,programy p2p,tapety,programy biurowe,programy dla firm,narzdzia dyskowe,edytory,gry strategiczne,gry przygodowe,gry sportowe, symulatory, gry rpg,gry karciane, gry zrecznosciowe. Zapraszamy.
0.022 |