Vícerozměrná pole PHP
Na předchozích stránkách jsme popsali pole, která jsou jediným seznamem párů klíč/hodnota.
Někdy však chcete uložit hodnoty s více než jedním klíčem. K tomu máme vícerozměrná pole.
PHP - Multidimenzionální pole
Vícerozměrné pole je pole obsahující jedno nebo více polí.
PHP podporuje vícerozměrná pole, která jsou hluboká dvě, tři, čtyři, pět nebo více úrovní. Pro většinu lidí je však obtížné spravovat pole více než tři úrovně.
Rozměr pole udává počet indexů, které potřebujete k výběru prvku.
- Pro dvourozměrné pole potřebujete k výběru prvku dva indexy
- Pro trojrozměrné pole potřebujete k výběru prvku tři indexy
PHP - Dvourozměrná pole
Dvourozměrné pole je pole polí (trojrozměrné pole je pole polí polí).
Nejprve se podívejte na následující tabulku:
Name | Stock | Sold |
---|---|---|
Volvo | 22 | 18 |
BMW | 15 | 13 |
Saab | 5 | 2 |
Land Rover | 17 | 15 |
Data z výše uvedené tabulky můžeme uložit do dvourozměrného pole, jako je toto:
$cars = array (
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
Nyní dvourozměrné pole $cars obsahuje čtyři pole a má dva indexy: řádek a sloupec.
Abychom získali přístup k prvkům pole $cars, musíme ukázat na dva indexy (řádek a sloupec):
Příklad
<?php
echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>";
echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>";
echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>";
echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>";
?>
Můžeme také vložit for
smyčku do jiné for
smyčky, abychom získali prvky pole $cars (stále musíme ukázat na dva indexy):
Příklad
<?php
for ($row = 0; $row < 4; $row++) {
echo "<p><b>Row number $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$cars[$row][$col]."</li>";
}
echo "</ul>";
}
?>
Kompletní reference PHP Array
Úplnou referenci o všech funkcích polí naleznete v naší úplné příručce PHP Array Reference .
Odkaz obsahuje stručný popis a příklady použití pro každou funkci!