Pole
Pole je speciální datová struktura, ve které jedna proměnná může obsahovat několik hodnot. Tyto hodnoty jsou přístupné pomocí indexu. Index prvku pole se zapisuje do hranatých závorek. Nyní máme dispozici pole $a, které obsahuje tři prvky. Jednotlivé prvky pole mohou být libovolného typu.
$pole[0]=12; $pole[1]=”PHP”; $pole[]=8.123;
V PHP můžeme jako index pole používat i znakové řetězce. Získáme pak tzv. asociativní pole:
$adresy["Jirka“]=jirka@seznam.cz;
Inicializace pole
Pokud u pole použijeme prázdný index, hodnota se automaticky uloží na místo prvního volného indexu. Indexy začínají od nuly.
$pole[]=12; $pole[]=”PHP”; $pole[]=8.123;
Pokud inicializujeme pole pomocí Array, můžeme index přiřadit zvlášť každé hodnotě. Operátor => můžeme použít u libovolného prvku pole. $pole = Array("Jablka", "Hrušky", "Švestky"); Hodnota prvního prvku pole $pole[0] je hodnota Jablka. Pokud bychom chtěli, aby pole bylo indexováno od jiného indexu nebo asociativní pole, použili bychom: $pole = Array(1 => "Jablka", "Hrušky", "Švestky"); Tentokrát: Index 1: Jablky, Index 2: Hrušky.
Funkce pro práci s polem
Pro zjištění počtu prvků pole slouží funkce Count($pole). Pokud máme pole vytvořeno standardní cestou, a je tudíž indexováno od nuly, můžeme pro zpracování všech prvků pole $pole použít následující kód:
<?php $pole[] = 2; //inicializace pole nebo $pole = array(2,10,25,31); $pole[] = 10; $pole[] = 22; $pole[] = 31; echo "Výpis hodnot pomocí cyklu for : <br>" ; for($i=0;$i<count($pole);$i++) echo "$pole[$i] " ; echo "Výpis hodnot pomocí cyklu foreach : <br>" ; foreach ($pole as $hodnota) echo "$hodnota "; ?>
Pokud používáme asociativní pole, nebo pole s indexem, který nezačíná od nuly, můžeme pro zpracování celého pole použít funkce Reset(), Current(), Next() a Key(). Pro každé pole totiž v PHP existuje ukazatel, který ukazuje na některý prvek pole. Pomocí Reset($pole) přesuneme tento ukazatel na první prvek pole. Funkce Current($pole) vrací hodnotu prvku pole, na který ukazuje uka- zatel. Podobně funguje i funkce Next($pole). Rozdíl je v tom, že se nejprve ukazatel přesune na další prvek pole a teprve poté se vrátí hodnota prvku pole. Funkce List() může mít libovolný počet parametrů a slouží k načtení prvků pole do proměnných proměnných. Pokud máme např. pole $x, které má čtyři prvky, můžeme tyto prvky uložit do proměnných $p1, $p2, $p3 a $p4 pomocí následujícího příkazu: list($p1,$p2,$p3,$p4)=$x; Pokud nás zajímá jen první a čtvrtý prvek, můžeme některé parametry vynechat: list($p1,$p4)=$x;
Vícerozměrná pole
Pro každý rozměr stačí do hranatých závorek přidat další index. Např. dvojrozměrná pole se často používají pro uchování různých matic. Pro přístup k prvku ve třetím řádku a pátém sloupci dvojrozměrného pole $mat můžeme použít zápis $mat[3][5]. Dvojrozměrné pole se přitom chová jako jednorozměrné pole, jehož prvky jsou pole. Tato pole mohou mít dokonce různý počet prvků. Zápis $mat[3] tedy vrací pole, které obsahuje všechny prvky třetího řádku naší pomyslné matice. Vícerozměrná pole můžeme inicializovat pomocí vnořených příkazů array.
<?php $a[0][0] = "a"; $a[0][1] = "b"; $a[1][0] = "y"; $a[1][1] = "z"; foreach($a as $v1) { foreach ($v1 as $v2) { print "$v2\n"; } } ?>