https://help.superhosting.bg/php-multidimentional-arrays.html
  • bg

Хостинг, Домейни, Виртуални сървъри (VPS), Managed VPS, SSL сертификати

Многомерни масиви в PHP

PHP масиви
php multidimentional array

Масив, който представлява прост списък, с по няколко елемента, може да се нарече едномерен. Например масивът $hrana (от статията Какво е масив (array) в PHP?) фактически е списък, на който зададохме да съдържа няколко храни - домати, ябълки, хляб и пилешко. Такива масиви се наричат едномерни. По-често обаче се налага да се работи със списъци, чиито елементи съдържат други списъци с елементи (подсписъци). Например в един списък на храни може да имаме елемента "месо", който да съдържа подсписък с няколко вида месо, примерно "пилешко", "телешко" и "свинско". Съответно елементът "пилешко" може да съдържа на свой ред подсписък с елементите "пилешки бутчета", "пилешки крилца", "пилешки гърди" и т.н.

Такива вложени един в друг списъци е лесно да се представят чрез т.нар. многомерни масиви. Многомерните масиви, както подсказва названието им, съдържат в себе си други масиви. Многомерните масиви могат да бъдат двумерни, тримерни и т.н.

Да направим двумерен масив, който да съдържа елемента "месо" с поделементите "пилешко", "телешко" и "свинско". Кодът може да изглежда по следния начин:

<?php
$hrana[meso][1] = "пилешко";
$hrana[meso][2] = "телешко";
$hrana[meso][3] = "свинско";
echo $hrana[meso][2];
?>

Този код ще изведе на екран елемента "телешко". От примера се вижда, че след като масивът е създаден, обръщането към някакъв негов елемент става като след името на масива се изпишат в квадратни скоби идентификационните ключовете или номера на съответния елемент. Ако се извиква стойност от двумерен масив, както е в случая, след името на масива ще трябва да се изпишат две квадратни скоби с ключове или номера; ако се извиква елемент от тримерен масив се изписват три квадратни скоби с ключове или номера и т.н.

В един многомерен масив може да разположите колкото желаете списъци и подсписъци, например:

<?php
$hrana[meso][pileshko][butcheta] = "пилешки бутчета";
$hrana[meso][pileshko][krilca] = "пилешки крилца";
$hrana[meso][pileshko][gyrdi] = "пилешки гърди";
$hrana[plodove][yabulki] = "ябълки";
$hrana[plodove][krushi] = "круши";
$hrana[plodove][banani] = "банани";
echo "Вторият елемент на списъка е {$hrana[meso][pileshko][krilca]},
а последният е {$hrana[plodove][banani]}";
?>

Горният код ще изведе на екран съобщението Вторият елемент на списъка е пилешки крилца, а последният е банани.

Извикването на елемент от многомерен масив в низ става като названието на масива и съответните ключове или номера се поставят в големи скоби. Забележете, че в този пример вътре в низа, т.е. в изречението след echo, името на масива и ключовете на стойностите са поставени именно в такива скоби - {}. Ако махнем скобите и напишем:

echo "Вторият елемент на списъка е $hrana[meso][pileshko][krilca],
а последният е $hrana[plodove][banani]";

ще получим като резултат съобщението Вторият елемент на списъка е Array[pileshko][krilca], а последният е Array[banani].

Многомерен масив може да се създаде и като се ползва функцията array и символите => по следния начин:

<?php
$hrana = array("meso" => array("пилешко", "телешко",
"свинско"), "plodove" => array("ябълки", "круши",
"банани"));
echo $hrana[meso][0];
?>

Горният код ще ни покаже резултат "пилешко", тъй като в случая няма зададени ключове или номера на стойностите от списъка с видовете месо и затова на стойността "пилешко" автоматично е присвоен идентификационен номер 0.

500px270px
SuperHosting.BG

Коментари

Все още няма коментари

avatar
  Абониране  
Уведоми ме при
Всички права запазени © 2005-2018 , www.superhosting.bg