Spremenljivka v PHP običajno hrani eno vrednost. Polje pa omogoča, da pod enim imenom shranimo več vrednosti. Polje je urejena zbirka elementov, do katerih dostopamo s ključi.
Ključi v polju so lahko števila ali nizi. Zato v PHP najpogosteje ločimo numerična, asociativna in večdimenzionalna polja.
Pomni: Polje uporabimo takrat, ko želimo v eni spremenljivki hraniti več med seboj povezanih vrednosti.
Osnovna pravila
- Polje lahko vsebuje več elementov pod enim imenom.
- Do elementov dostopamo s ključem ali indeksom.
- Numerična polja uporabljajo predvsem številske indekse.
- Asociativna polja uporabljajo tekstovne ključe.
- Večdimenzionalna polja vsebujejo druga polja.
- Pri dostopu do elementa moramo uporabiti pravilen ključ ali indeks.
Pozor: Če uporabimo neobstoječ ključ ali indeks, rezultat ni pravilen in program lahko izpiše opozorilo.
Numerična polja
Pri numeričnem polju so ključi običajno zaporedna števila, ki se začnejo z 0. V sodobnem PHP jih najpogosteje zapisujemo s kratko sintakso [], lahko pa tudi s starejšo sintakso array().
$sadezi = ["banana", "ananas", "limona"];
Do posameznega elementa dostopamo z indeksom:
echo $sadezi[1]; // izpiše ananas
Indeks lahko po potrebi določimo tudi sami:
$sadezi[0] = "banana";
$sadezi[100] = "jabolko";
Pomni: V numeričnem polju je prvi element na indeksu 0, ne na indeksu 1.
Primer:
$imena1 = ["Lojze", "Janez", "Mojca"];
// je enako kot
$imena2[0] = "Lojze";
$imena2[1] = "Janez";
$imena2[2] = "Mojca";
<?php
$skupina = ["Lojze", "Janez", "Mojca"];
echo "Člani skupine so: " . $skupina[0] . ", " . $skupina[1] . " in " . $skupina[2] . ".";
?>
Asociativna polja
Pri asociativnem polju namesto številskih indeksov uporabljamo ključe, zapisane kot nize. Tako lahko podatke označimo z bolj opisnimi imeni.
$karakter = ["ime" => "Janez", "poklic" => "elektroinženir", "starost" => 30];
Do podatkov dostopamo s ključem:
echo $karakter["starost"]; // izpiše 30
Pomni: Asociativno polje je uporabno takrat, ko želimo podatke povezati z opisnimi ključi, na primer ime, starost ali kraj.
Primer:
// starost članov
$imena = ["Lojze" => 32, "Janez" => 18, "Mojca" => 22];
// isto kot
$imena["Lojze"] = 32;
$imena["Janez"] = 18;
$imena["Mojca"] = 22;
<?php
$imena = ["Lojze" => 32, "Janez" => 18, "Mojca" => 22];
echo "Člani so stari: ";
echo $imena["Lojze"] . ", ";
echo $imena["Janez"] . " in ";
echo $imena["Mojca"] . " let.";
?>
Večdimenzionalna polja
Večdimenzionalno polje je polje, katerega elementi so lahko tudi druga polja. Takšna polja uporabljamo, kadar želimo združevati bolj zapletene podatke.
$polje[1][2];
Do podatkov v večdimenzionalnem polju dostopamo z več ključi ali indeksi.
<?php
$osebe = [
"Peter" => ["starost" => 32, "visina" => 172],
"Janez" => ["starost" => 18, "visina" => 183]
];
echo "Janez je star: " . $osebe["Janez"]["starost"] . " let.";
?>
Pozor: Pri večdimenzionalnih poljih moramo paziti na pravilen vrstni red ključev, saj napačen zapis pomeni dostop do napačnega elementa ali do neobstoječe vrednosti.
Primerjava vrst polj
| Vrsta polja | Ključi | Primer uporabe |
|---|---|---|
| numerično polje | številski indeksi | seznam imen, seznam sadja, seznam ocen |
| asociativno polje | opisni ključi | osebni podatki, nastavitve, lastnosti predmeta |
| večdimenzionalno polje | več ključev ali indeksov | tabele podatkov, skupine oseb, zapletene strukture |
Pomni: Izbira vrste polja je odvisna od tega, kako želimo podatke organizirati in kako bomo do njih dostopali.
Delo s polji in zanko foreach
Za prehod skozi vse elemente polja najpogosteje uporabimo zanko foreach. Tak zapis je pregleden in posebej primeren za delo s polji.
<?php
$sadezi = ["banana", "ananas", "limona"];
foreach ($sadezi as $sadez) {
echo $sadez . "<br>";
}
?>
Pomni: Zanka foreach je najpogostejši in najbolj pregleden način za obdelavo vseh elementov polja.
Priporočila
- Za preproste sezname uporabljamo numerična polja.
- Za opisno urejene podatke uporabljamo asociativna polja.
- Za bolj zapletene podatkovne strukture uporabljamo večdimenzionalna polja.
- Pri delu z vsemi elementi polja je priporočljivo uporabiti zanko
foreach. - Ključe in imena spremenljivk izbiramo jasno in smiselno.
Pozor: Nepregledno poimenovani ključi in spremenljivke otežijo razumevanje kode in povečajo možnost napak.
Pogoste napake
- Predpostavi se, da se prvi element numeričnega polja začne z indeksom
1namesto0. - Uporabi se napačen ključ ali napačen indeks.
- Pri asociativnem polju se namesto ključa uporabi številski indeks.
- Pri večdimenzionalnem polju se ne upošteva pravilno zaporedje ključev ali indeksov.
- Do elementa polja se dostopa, čeprav ta element ni določen.
- Za prehod skozi polje se uporabi manj pregleden pristop, čeprav bi bila zanka
foreachprimernejša.
Pozor: Velik del napak pri delu s polji nastane zaradi napačnega razumevanja ključev, indeksov in strukture podatkov.
Sklep
Polja v PHP omogočajo shranjevanje več vrednosti v eni spremenljivki in so zato zelo pomemben del programiranja. Pri delu s polji moramo razumeti razliko med numeričnimi, asociativnimi in večdimenzionalnimi polji, pravilno uporabljati ključe ter izbrati ustrezno strukturo glede na podatke, ki jih obdelujemo.