Tablice, ZS

[ Pobierz całość w formacie PDF ]
Tablice
Wst
ħ
p
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 1. Tworzenie tablicy
<?php
$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, z innej tablicy czy funkcji – z dowolnego wyra
Ň
enia
zwracaj
Ģ
cego warto
Ļę
.
Przykład 2. Indeksy tablic
<?php
$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).
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):
Przykład 3. Tablice asocjacyjne
<?php
$tablica["imie"] = "Jan";
$tablica["nazwisko"] = "Kowalski";
$tablica["adres"] = "Polna 1";
echo $tablica["imie"]." ".$tablica["nazwisko"].", ul.
".$tablica["adres"]."n";
?>
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:
Przykład 4. Przegl
Ģ
danie tablic p
ħ
tl
Ģ
<?php
$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.
Przykład 5. P
ħ
tla for i funkcja count
<?php
$tbl[] = 1;
$tbl[] = 2;
$tbl[] = 3;
$tbl[] = 4;
$tbl[] = 5;
for( $x = 0, $cnt = count($tbl); $x < $cnt; $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.
Przykład 6. Przegl
Ģ
danie tablic asocjacyjnych
<?php
$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.
Sortowanie tablic
PHP ofertuje cały zestaw funkcji słu
ŇĢ
cych do sortowania tablic. S
Ģ
to:
asort()

arsort()

ksort()

rsort()

sort()

uasort()

usort()

uksort()

Wi
ħ
kszo
Ļę
funkcji (oprócz trzech ostatnich) przyjmuje jeden parametr: zmienn
Ģ
zawieraj
Ģ
c
Ģ
tablic
ħ
do posortowania.
ņ
adna z funkcji nie zwraca
Ň
adnego wyniku.
Funkcje sortuj
Ģ
ce
asort()
sortuje tablice asocjacyjne zachowuj
Ģ
c przypisanie kluczy do warto
Ļ
ci
<?php
$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 = $wartoscn";
}
?>
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
ę
poni
Ň
szy 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.
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.
[ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • cs-sysunia.htw.pl