PHP поддържа множество вградени функции, чрез които масивите могат да бъдат обработвани. Например функцията foreach() обхожда целия масив и присвоява на променлива списъка с елементите на масива, а функцията count() преброява елементите на масива.
Синтаксисът на функцията foreach() е:
foreach(име на масив as име на променлива) {изпълним код с променливата}
В кръглите скоби се записва името на масива, ключовата дума as и след нея – името на променлива, на която се присвоява като стойност целия масив. След това в големите скоби се задава действие с променливата, която е получила като стойност съдържанието на масива.
Синтаксисът на функцията count() е:
count(име на масив)
В кръглите скоби просто се записва името на масива. Като резултат функцията връща броя на стойностите в този масив.
Пример:
<?php
$hrana = array("ябълки", "домати", "хляб", "пилешко");
foreach($hrana as $spisak_na_hrani)
{echo "$spisak_na_hrani<br />";}
$broi = count($hrana);
echo "Обща бройка: $broi";
?>
В горният код най-напред създаваме масива $hrana с четири стойности, които са „ябълки“, „домати“, „хляб“ и „пилешко“.
След това задаваме обхождане на масива чрез функцията foreach(), като целият масив $hrana се присвоява във вид на стойност на променливата $spisak_na_hrani. Чрез echo в големите скоби извеждаме този списък на екрана.
Накрая чрез функцията count() задаваме преброяване на елементите от списъка и извеждаме бройката на екран.
Резултатът от този код в браузъра ще бъде:
ябълки
домати
хляб
пилешко
Обща бройка: 4
Може да сортирате по азбучен ред елементите на даден масив чрез функцията sort(име на масив), например:
<?php
$hrana[plodove] = "ябълки";
$hrana[zelenchuci] = "домати";
$hrana[testeni] = "хляб";
$hrana[meso] = "пилешко";
sort($hrana);
foreach($hrana as $spisak_na_hrani)
{echo "$spisak_na_hrani<br />";}
?>
Горният код ще изведе списъка на названията на храните подредени според мястото на началните им букви в азбуката, а именно:
домати
пилешко
хляб
ябълки
Ако вместо названия като стойности на масива са зададени цифри, функцията sort() ще сортира списъка по големина на цифрите.
Когато се ползва функцията sort(), тя автоматично заменя ключовете за съответните стойности с идентификационните номера по подразбиране. Т.е. ако използваме функцията sort() както в горния код и след това се опитаме да извикаме например стойността „домати“ чрез $hrana[zelenchuci] няма да получим резултат. За да може да извикаме тази стойност ще трябва да напишем $hrana[0], тъй като функцията sort(), освен че е сортирала елементите по азбучен ред, поставяйки стойността „домати“ на първо място в масива, но също така и автоматично е заменила ключа „zelenchici“ с идентификационния номер по подразбиране, който за първия елемент от масива винаги е 0. T.e. за да получим резултата:
домати
пилешко
хляб
ябълки
домати
трябва да напишем:
<?php
$hrana[plodove] = "ябълки";
$hrana[zelenchuci] = "домати";
$hrana[testeni] = "хляб";
$hrana[meso] = "пилешко";
sort($hrana);
foreach($hrana as $spisak_na_hrani)
{echo "$spisak_na_hrani<br />";}
echo "<b>$hrana[0]</b>";
?>
За да се запазят зададените ключове на стойностите, трябва вместо sort() да се използва функцията asort(). Тя има същото предназначение, т.е. сортира елементите на масива по големина на стойност, ако стойността е цифрова или по азбучен ред ако стойностите са буквени, но запазва зададените от програмиста идентификационни номера или ключове на стойностите на масива.
Ако желаете да сортирате елементите на даден масив в обратен азбучен или цифров ред трябва да използвате функцията rsort(име на масив), например:
<?php
$hrana[plodove] = "ябълки";
$hrana[zelenchuci] = "домати";
$hrana[testeni] = "хляб";
$hrana[meso] = "пилешко";
rsort($hrana);
foreach($hrana as $spisak_na_hrani)
{echo "$spisak_na_hrani<br />";}
?>
Горният код ще ни даде като резултат списъка:
ябълки
хляб
пилешко
домати
Елементите се подреждат в обратен азбучен ред, като стойността „домати“ става последна, а стойността „ябълки“ – първа.
Също като функцията sort() и функцията rsort() автоматично заменя ключовете или зададените номера на стойностите с идентификационните им номера по подразбиране. За да се избегне това, е необходимо да ползвате функцията arsort(име на масив), която подобно на rsort() сортира елементите на масива в обратен ред, но за разлика от rsort() запазва зададените идентификационни ключове или номера на стойностите.
Функцията shuffle(име на масив) подрежда елементите на даден масив в произволен ред. Ако използвате тази функция, например в горния код на мястото на rsort(), при всяко ново зареждане на страницата ще получавате като резултат нова произволна подредба на наименованията на хранителните продукти в масива $hrana.
Функцията array_pop(име на масив) „отрязва“ последния елемент на даден масив и го премахва от списъка със стойности на масива, т.е. ако имаме кода:
<?php
$hrana = array("ябълки", "домати", "хляб", "пилешко");
array_pop($hrana);
foreach($hrana as $spisak_na_hrani)
{echo "$spisak_na_hrani<br />";}
?>
резултатът от него ще бъде:
ябълки
домати
хляб
тъй като последния елемент на масива – пилешко – е премахнат с помощта на array_pop().
Функцията array_shift(име на масив) извършва същото действие като array_pop() с тази разлика, че премахва първия елемент от списъка със стойности на даден масив.
С функцията array_push() могат да се добавят нови елементи към списъка с елементи в даден масив. Новите елементи се добавят в края на списъка. Синтаксисът на функцията е:
array_push(име на масив, 1-ви нов елемент, 2-ри нов елемент,…)
В кръглите скоби се записва името на масива и след това, отделени със запетаи, се записват новите елементи на масива, например:
<?php
$hrana = array("ябълки", "домати", "хляб", "пилешко");
array_push($hrana, "мляко", "яйца");
foreach($hrana as $spisak_na_hrani)
{echo "$spisak_na_hrani<br />";}
?>
Горният код ще изведе на екран списъка:
ябълки
домати
хляб
пилешко
мляко
яйца
тъй като чрез array_push() сме добавили в края на списъка стойностите „мляко“ и „яйца“.
Функцията array_unshift() е със същия синтаксис като array_push() и също добавя нови елементи към даден масив, но ги добавя в началото, а не в края на списъка със стойности на масива.
Чрез функцията array_merge() може да обедините два или повече масива в един. Синтаксисът на функцията е:
array_merge(име на 1-ви масив, име на 2-ри масив,…)
В кръглите скоби се записват имената на масивите които ще обединявате, разделени със запетая, например:
<?php
$hrana1 = array("ябълки", "домати", "хляб", "пилешко");
$hrana2 = array("мляко", "яйца");
$hrana3 = array("шоколад", "сладолед");
$hrana = array_merge($hrana1, $hrana2, $hrana3);
foreach($hrana as $spisak_na_hrani)
{echo "$spisak_na_hrani<br />";}
?>
В горния код трите масива $hrana1, $hrana2 и $hrana3 са обединени в един и резултатът показан на екран ще бъде:
ябълки
домати
хляб
пилешко
мляко
яйца
шоколад
сладолед
Функцията array_sum(име на масив) извършва сбор на всички стойности в масива. Например резултатът от кода:
<?php
$chisla = array(1, 2, 3, 4, 5);
echo array_sum($chisla);
?>
ще бъде цифрата 15, защото това е сумата на числата от 1 до 5, които са стойности на масива $chisla.
Функциите max(име на масив) и min(име на масив) откриват съответно най-високата и най-ниската стойност в даден масив. Например кода:
<?php
$chisla = array(1, 2, 3, 4, 5);
$naj_goliamo = max($chisla);
$naj_malko = min($chisla);
echo "Най-високата стойност в масива е $naj_goliamo, а най-ниската е $naj_malko";
?>
ще върне като резултат съобщението „Най-високата стойност в масива е 5, а най-ниската е 1“.
Функциите reset(име на масив) и end(име на масив) връщат като резултат съответно първата и последната стойност на даден масив. Например кодът:
<?php
$hrana[plodove] = "ябълки";
$hrana[zelenchuci] = "домати";
$hrana[testeni] = "хляб";
$hrana[meso] = "пилешко";
$parvi = reset($hrana);
$posleden = end($hrana);
echo "Първият елемент на масива е $parvi, а последният е $posleden";
?>
ще върне като резултат съобщението „Първия елемент на масива е ябълки, а последният е пилешко“.
PHP поддържа десетки функции за обработка на масиви. В настоящите материали са представени само някои от тях. Пълен списък с тези функции и описание на действието им може да видите в официалния сайт php.net.