130 likes | 292 Views
Proměnná typu "pole". Mezi proměnné typu "pole" patří všechny superglobální proměnné. To je speciální struktura, která může v jedné proměnné obsahovat sadu hodnot. Pole má prvky - každý prvek má: index nebo klíč hodnotu. Proměnná typu "pole".
E N D
Proměnná typu "pole" • Mezi proměnné typu "pole" patří všechny superglobální proměnné. • To je speciální struktura, která může v jedné proměnné obsahovat sadu hodnot. • Pole má prvky - každý prvek má: • index nebo klíč • hodnotu.
Proměnná typu "pole" • Pole si můžete představit např. takto: Na škole máte tři obory. Z těchto oborů můžete udělat v PHP pole například tak, že jako index bude sloužit pořadí oboru. <?$obor[1]="Mechanizace a služby";$obor[2]="Veterinářství"; $obor[3]="Zahradnictví"; ?>
Proměnná typu "pole" • Vznikla proměnná $obor (pole), která obsahuje tři prvky , z nichž každý má svůj index (například trojku) a hodnotu (takže Zahradnictví). • Z tohoto příkladu vidíte, že pole se v PHP zapisují jako každá jiná proměnná, pouze za názvem mají v hranatých závorkách index. • Toto pole je tzv. indexované.
Asociativní "pole" • Někdy může ale být šikovnější rozlišit od sebe prvky pole řetězcem, čímž vznikne tzv. asociativní pole. <?$obor["Mechanizace a služby"]=MEC; $obor["Veterinářství"]=VET; $obor["Zahradnictví"]=ZAH; ?> • Obecně může být asociativní pole užitečné v případě, kdy budete chtít rozlišovat prvky podle něčeho jiného než podle čísel.
Inicializace "pole" • Pole v programu samozřejmě nevznikne samo od sebe. Můžete jej nastavit tak, že jeho prvkům přiřadíte postupně hodnoty. • Index pole také můžete vynechat a PHP jej dosadí za vás. • Další možnost je použít PHP funkci array, která provede totéž, ale je to mnohem kratší. <?$obor[]="MEC";$obor[]="VET"; $obor[]="ZAH"; ?>
Inicializace "pole" pomocí funkce array <? $obor=Array("MEC", "VET", "ZAH"); ?> • Je tu nicméně jeden problém. PHP standardně čísluje pole od nuly, ne od jedničky.
Inicializace "pole" s nastavením číslováním Číslování indexu lze nastavit i ručně. <?$obor[1]="MEC"; $obor[]="VET"; $obor[]="ZAH"; ?> <? $obor=Array(1=>"MEC", "VET", "ZAH"); ?>
K čemu se "pole" používají • Pole mohou: • sloužit jako seznamy • simulovat slovníky • fungovat jako kolekce prvků • pracovat jako zásobníky nebo fronty • představovat stromové struktury (prvkem pole totiž může být pole) • Rozsáhlá pole mohou zabírat extrémně mnoho systémových zdrojů, zejména operační paměti.
Příklad • Z definovaného pole vypíše první a poslední záznam <?$obor[]="MEC"; $obor[]="VET"; $obor[]="ZAH"; echo$obor[0]; echo "<br />"; echo$obor[2]; ?>
Příklad • Vytvořte pole s deseti jmény • Na obrazovku nechte zobrazit všechny liché záznamy (vedle sebe oddělené čárkou) • Na další řádek nechte zobrazit všechny sudé záznamy (vedle sebe oddělené čárkou)
Řešení <? $fronta=Array(1=>"Petr", "Pavel", "Maruška" , "Eva", "Roman", "Jana", "Dana" , "Martin", "Kamil", "Ondřej"); echo$fronta[1].", ". $fronta[3].", ". $fronta[5].", ". $fronta[7].", ". $fronta[9]; echo "<br />"; echo$fronta[2].", ". $fronta[4].", ". $fronta[6].", ". $fronta[8].", ". $fronta[10]; ?>
Otázky k opakování • Jaké prvky má proměnná typu pole? • Jaké typy polí znáte? • Jak se nazývá funkce pro inicializace pole? • K jakým účelům se pole používají?
Použité zdroje • BLÁBOLIL, R. Informační a komunikační technologie. 3. rozšířené vydání. České Budějovice: KOPP, 2011. str. 407 Použité obrázky: • Vlastní