Pole (array) je kolekcia hodnot, ktore spolu nejako suviseju, napriklad data z odoslaneho formulara, mena studentov v triede, alebo pocet obyvatelov v zoznamu miest. V kapitole 2 ste sa dozvedeli, ze premenna je pomenovany kontajner, v kt. sa udrzuje nejaka hodnota. Poleje kontajner, v kt. sa udrzuje viac hodnot.
V tejto kapitole uvidite, jak sa pracuje s polami. V nasledujucej sekcii
"Zaklady prace s polami"
najprv preberiemezakladne veci - jak sa pole vytvara a jak sa manipuluje s ich prvkami.
Casto potrebujete postupne nieco urobit s kazdym prvkom pola, napriklad ho vytisknut, alebo preskumat, ci splnuju nejake podmienky.
Ako sa take veci robia s konstrukciami
foreach() a
for() si vysvetlime v dalsej sekcii
"Prechadzanie poli v smycke".
Sekcia
"Modifikacia poli" vas nasledne zoznami s funkciami
implode() a
explode(), ktorepremenuju pole na retazce resp. retazce na pole. Inym druhom modifikacie je zoradovanie (sorting), kt. sa prebera v casti
"zoradovanie prvkov pola". A konecne v sekcii
"Viacrozmerne polia" potom spolocne preskumame polia obsahujuce ine polia.
Pracovat s polom je bezna programovacia uloha v PHP. Vkapitole 7 uvidite jak sa spracovavaju formularove data, ktore pre vas php engine automaticky ulozi do pola. Az sa naucite ziskavat data z nejakej databaze, co sa popisuje v kapitole 8, aj take data sa casto zabalia do nejakeho pola. Ked budete vediet dobre pracovat s polami, budu pre vas manipulacie tohoto druhu s datami velmi jednoduche.
Pole sa sklada z prvkov, kazdy prvok ma nejaky kluc a nejaku hodnotu. Napriklad pole obdsahujuce informacie o farbach zelenin, obsahuje nazvy zelenin(key-kluce) a farby(value-hodnoty).
Kluce a hodnoty v poli obsahujucom informacie o farbach zelenin:
key | value |
---|---|
Kukurica | zlta |
Beet | cervena |
Mrkva | oranzova |
Paprika | zelena |
Brokolica | zelena |
Pole moze obsahovat iba jeden prvok s danym klucom(key). V poli s farbami zeleniny nemoze byt dalsi prvok s klucom(key) Kukurica aj keby bola jeho hodnota(value) modra.
A vsak rovnaka hodnota(value) sa moze v jednom poli objavit velakrat. Mozete tam mat zelenu papriku, zelenu brokolicu a zeleny celer.
Pole sa vytvara pomocou konstrukcie array().
Specifikuje zoznam dvojic kluc/hodnota (key/value).
Dvojice oddelujte ciarkou ,
kluc od hodnoty oddelte pomocou =>:
Kluce a hodnoty poli vytvorenych v priklade su retazce a cisla. v PHP sa zapisuju rovnako ako ostatne retazce a cisla: s apostrofami ' ' okolo retazcov ale nie okolo cisel.
Skrateny zapis pre array() spociva v pouziti dvojice hranatych zatvoriek, hovori sa jej skratena syntax pola(short array syntax):
Do pola je dalej mozne pridavat prvky po jednom, ked priradujete hodnotu konkretnemu klucu pola. Dalsi priklad vybuduje rovnake polia ako predosle priklady ale s tym rozdielom ze to robi prvok po prvku.
V priklade sa hranate zatvorky uvedene za nazvom premennej pola odkazuju na konkretny kluc v poli. Ked pridate hodnotu tomuto klucu vytvorite v tomto poli prvok.
Pre nazvy premennych, ktore su polami, platia rovnake pravidla ako pre nazvy lubovolnych inych premennych. Nazvy pre pole askalarne premenne teda vychadzaju z rovnakej mnoziny moznych nazvov, ale samozrejme nemozete mat pole s nazvom $vegetables a premennu s nazvom $vegetables. Ked priradite skalarnu hodnotu do pola (alebo naopak), stara hodnota sa potichu sprovodi ze sveta a premenna dostane novu hodnotu. V dalsom priklade sa z $vegetables stane skalarna premenna a z $fruits pole.:
Warning: Cannot use a scalar value as an array in /home/users/copovedat12/kreativita-je-inteligencia-ktora-sa-zabava.6f.sk/web/kapitola-04/zoskupovanie_dat-praca_s_polom.php on line 226
V priklade 4-1 sa do poli $vegetables a $fruits uklada zozonam suvislosti. Pole $vegetables sa tyka zeleniny a ich farieb, pole $computers dava do suvislosti nazvy pocitacov a vyrobcu. V poli $jedlo sa ale starame len o nazvy pokrmov, co su hodnoty pola. Klucetoho pola su jednoducho len cisla odlisujuce jeden prvok od druheho.
PHP poskytuje specialny skrateny zapis pre polia kt. maju ako kluce iba CISLA. Ak vytvorite pole s [] alebo s array(), v ktorom specifikujete len zoznam hodnot a nie zoznam dvojic kluc/hodnota. PHP engine automatickypriradi kazdej hodnote ciselny kluc. Kluce zacinaju na 0 a zvysuju sa pre kazdy prvok o jednu:
Ja budem jest Sweet Corn and Asparagus
This chapter explains ba bla bla
This chapter explains ba bla bla
This chapter explains ba bla bla
This chapter explains ba bla bla