Какво е масив (array) в PHP?

В статията за типовете на променливите вече беше споменато за един особен тип променливи – array (масив). Масивите са променливи, които, за разлика от другите променливи, могат да съдържат повече от една стойност. Декларирането им става с функцията array(), като в кръглите скоби се записват стойностите на масива разделени със запетаи. Всяка стойност на масива автоматично получава идентификационен номер, като началният номер по подразбиране е 0. При извикване на някоя стойност на масива тя трябва да се укаже чрез идентификационния си номер, записан в квадратни скоби, например:

<?php
$promenliva = array("стойност1", "стойност2", "стойност3");
echo "$promenliva[0]";
?>

Резултатът от горния код ще бъде извеждане на екран на стойност1, тъй като това е стойността с идентификационен номер 0.

Стойностите на масива могат да се зададат и поотделно на променливата, като в този случай пред името на променливата трябва да се постави квадратна скоба, която може да съдържа идентификационен номер. Ако не се укаже изрично идентификационен номер, тогава такъв се присвоява автоматично, като отново началния номер по подразбиране е 0, например:

<?php
$promenliva[] = "стойност1";
$promenliva[] = "стойност2";
$promenliva[] = "стойност3";
echo "$promenliva[0]";
?>

Резултатът от този код отново ще е стойност1.

Идентификационният номер може да бъде и изрично указан. В такъв случай не е задължително началният номер да бъде 0. Можете да използвате всякакви номера, каквито сметнете за необходими, например:

<?php
$hrana[5] = "ябълки";
$hrana[8] = "домати";
$hrana[25] = "хляб";
$hrana[17] = "пилешко";
echo "$hrana[25]";
?>

Резултатът от горния код ще бъде извеждане на екрана на думата „хляб“, тъй като 25 е номера на стойността „хляб“ от масива $hrana.

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

<?php
$hrana[plodove] = "ябълки";
$hrana[zelenchuci] = "домати";
$hrana[testeni] = "хляб";
$hrana[meso] = "пилешко";
echo "$hrana[meso]";
?>

Горният код ще изведе на екран думата „пилешко“, защото тази стойност на масива е идентифицирана чрез думата „meso“.

Думите, чрез които се идентифицират стойностите на масива, се наричат ключове. В случая думата „meso“ е ключ за стойността „пилешко“, думата „plodove“ е ключ за стойността „ябълки“ и т.н. Даден масив може да се дефинира и като всяка стойност бъде указана с нейния ключ в кръглите скоби на функцията array. В този случай синтаксисът на масива е:

$promenliva = array(ключ1 => стойност1, ключ2 => стойност2, ключ3 => стойност3);

т.е. всеки ключ сочи чрез символите равенство и стрелка (=>) към своята стойност, като двойките ключ-стойност са отделени със запетаи. Пример:

<?php
$hrana = array(plodove => "ябълки", zelenchuci => "домати", testeni => "хляб", meso => "пилешко");
echo "$hrana[plodove]";
?>

В този случай резултатът ще бъде извеждане на екран на думата „ябълки“, тъй като ключът на тази стойност е „plodove“.

Същия принцип – ключове, сочещи към стойности – можете да видите например при вградените в езика масиви $_POST, $_GET и $_REQUEST, с които се обработват данни от формуляри. Имената на полетата на формулярите, зададени чрез атрибута name, например name=“komentar“, name=“email“ и т.н., се явяват ключове, сочещи към стойността (съдържанието) на съответното поле от формуляра и затова се задават в квадратните скоби след името на масива, например $_POST[komentar], $_POST[email] и т.н.

Ключовете на стойностите, зададени чрез функцията array(), могат да бъдат и цифрови, например:

<?php
$hrana = array(5 => "ябълки", 8 => "домати", 25 => "хляб", 17 => "пилешко");
echo "$hrana[5]";

Горният код отново ще изведе на екран думата „ябълки“, тъй като е зададено ключът на тази стойност да бъде 5.

Ако желаете стойностите на даден масив да бъдат номерирани от точно определена цифра нататък, трябва да зададете тази цифра като ключ на първата стойност на масива. Следващите стойности на масива ще получат автоматично пореден идентификационен номер според местоположението си, например:

<?php
$hrana = array(10 => "ябълки", "домати", "хляб", "пилешко");
echo "$hrana[11]";
?>

Горният код ще изведе на екран думата „домати“, тъй като на първата стойност на масива, която е „ябълки“, сме задали номер 10, т.е. броенето започва от цифрата 10. Стойността „домати“ е втора в изброяването и затова автоматично получава идентификационен номер 11. Стойностите „хляб“ и „пилешко“ получават съответно номера 12 и 13.

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

<?php
$hrana[10] = "ябълки";
$hrana[] = "домати";
$hrana[] = "хляб";
$hrana[] = "пилешко";
echo "$hrana[11]";
?>

В този случай отново ще получим като резултат извеждане на екран на стойността „домати“, тъй като тя автоматично получава пореден идентификационен номер 11.

Масивите могат да съдържат смесено стойности от различни типове и във всеки момент на стойностите им може да бъде променено съдържанието и типа данни, например:

<?php
$hrana[plodove] = "ябълки";
$hrana[zelenchuci] = 1.25;
$hrana[zarneni] = "хляб";
$hrana[meso] = "пилешко";
echo "$hrana[meso]<br />";
$hrana[meso] = 5.75;
echo "$hrana[meso]";
?>

В горния пример стойността на $hrana[meso] е променена от „пилешко“ (низ) на 5.75 (число с плаваща запетая).

Обновена: 02.04.2022
Беше ли Ви полезна тази статия?

Вижте още