Îáõîæäàíå
íà ìàñèâ
ÇÀ äà èçâúðøèòå îïåðàöèè ïîñëåäîâàòåëíî âúðõó åëåìåíòèòå íà
ìàñèâà, òðÿáâà äà ìîæåòå äà ãî îáõîæäàòå ïîñëåäîâàòåëíî. Èìà ðàçëè÷íè íà÷èíè çà
îáõîæäàíå íà âñåêè åëåìåíò íà ìàñèâ. Íî íàé-óäîáíèÿò å èçïîëçâàíåòî íà öèêúëà
foreach. Ùå ñå ðàçãëåäàìå åäèí ïðèìåð.
Äà ïðåäïîëîæèì, ÷å èìàìå íîìåðèðàí
ìàñèâ íà èìå Student, êîéòî ñúäúðæà ñòîéíîñòèòå "John", "James" è "Susan".
Ìîæåòå äà èçïîëçâàòå öèêúëà foreach çà äà îñúùåñòâèòå ïîñëåäîâàòåëíî äîñòúï äî
âñåêè åëåìåíò â ìàñèâà, êàòî òåêóùèÿò åëåìåíò, ñå ñúõðàíÿâà âúâ âðåìåíà
ïðîìåíëèâà ñ èìå new. Åòî êàê ìîæå äà ñòàíå òîâà:
$Student =
array("James", "John", "Susan");
foreach ($Student as $new)
{
print
"$new";
}
Ãîðíèÿò êîä ùå âèçóàëèçèðà âñè÷êè åëåìåíòè íà
ìàñèâà. Òîêó-ùî èçïîëçâàõìå öèêúëà foreach çà îáõîæäàíå íà íîìåðèðàí ìàñèâ. Çà
äà îáõîäèòå àñîöèàòèâåí ìàñèâ è çà äà îñúùåñòâèòå äîñòúï äî èíäåêñèòå è
ñòîéíîñòèòå â íåãî, òðÿáâà äà èçïîëçâàòå ñëåäíàòà ìîäèôèêàöèÿ íà öèêúëà
foreach:
foreach ($Student as key_name => $new) { //
}
Òóê ïðîìåíëèâàòà key_name ñúõðàíÿâà òåêóùèÿ èíäåêñ, à ïðîìåíëèâàòà
new, òåêóùàòà ñòîéíîñò.
Âå÷å âèäÿõòå êàê ìîæåòå äà îáõîæäàòå ìàñèâ ñ
ïîìîùòà íà öèêúëà foreach. Âèäÿõòå è êàê ìîæåòå äà èçïîëçâàòå ôóíêöèèòå count()
è current(). Èìà îùå äâå ôóíêöèè, ñ ïîìîùòà íà êîèòî, ìîæåòå äà îáõîæäàòå ìàñèâ
à èìåííî next() è prev().
Ôóíêöèÿòà next() ïîëó÷àâà êàòî àðãóìåíò ìàñèâ. òàçè
ôóíêöèÿ îáõîæäà ìàñèâ îò ëÿâà íà äÿñíî. ôóíêöèÿòà next() âðúùà ñòîéíîñòòà íà
ñëåäâàùèÿ åëåìåíò. Êîãàòî äîñòèãíå äî êðàÿ íà ìàñèâà, òÿ âðúùà ñòîéíîñò False.
Ôóíêöèÿòà prev() ñúùî ïîëó÷àâà êàòî àðãóìåíò ìàñèâ, íî îáõîæäà ìàñèâà îò êðàÿ
êúì íà÷àëîòî ìó.
Òúðñåíå íà åëåìåíò â ìàñèâ
PHP ïðåäîñòàâÿ
íÿêîëêî ôóíêöèè çà òúðñåíå íà åëåìåíò â ìàñèâ. Â PHP ìîæåòå äà:
Íàìèðàòå
åëåìåíòè, êîèòî îòãîâàðÿò íà êðèòåðèé. ÄÀ ïðåäïîëîæèì, ÷å èñêàòå äà íàìåðèòå
âñè÷êè åëåìåíòè îò ìàñèâ, êîèòî îòãîâàðÿò íà äàäåí êðèòåðèè. Ìîæåòå äà íàìåðèòå
òåçè åëåìåíòè ïî äâà íà÷èíà - èëè êàòî èçïîëçâàòå öèêúëà foreach(), çà äà
îáõîäèòå öåëèÿ ìàñèâ è äà ïðîâåðèòå âñÿêà îò ñòîéíîñòèòå, èëè êàòî èçïîëçâàòå
ôóíêöèÿòà preg_grep() çà äà ïîñòèãíåòå ñúùàòà öåë. Ôóíêöèÿòà preg_grep()
ïðåòúðñâà ìàñèâ çà åëåìåíòè, îòãîâàðÿùè íà çàäàäåí êðèòåðèè, è âðúùà îòêðèòèòå
åëåìåíòè êàòî ìàñèâ.
Äà ïðåäïîëîæèì, ÷å èñêàòå äà ïðåòúðñèòå ìàñèâà Student
çà äà íàìåðèòå âñè÷êè ñòóäåíòè èìàùè Smith â èìåíàòà ñè.  òîçè ñëó÷àé ìîæåòå äà
èçïîëçâàòå ôóíêöèÿòà preg_grep() ïî ñëåäíèÿ íà÷èí.
$Student =
array ("James Patt", "John Smith", "Susan Carter", "Joe Smith", "Janet Jones");
$array_Smit = preg_grep() ("/^Smith", $Student);
 ãîðíèÿ êîä
ìàñèâúò Student ñå ïðåòúðñâà ñ ôóíêöèÿòà preg_grep() çà åëåìåíòè, ñúäúðæàùè íèçà
Smith. Ðåçóëòàòúò ùå áúäå ìàñèâ ñúäúðæàù John Smith è Joe Smith
Íàìèðàíå
ðàçëèêàòà íà äâà ìàñèâà. Äî ñåãà íàó÷èõòå, êàê ìîæåòå äà íàìèðàòå óíèêàëíèòå
åëåìåíòè â ìàñèâ. Ñåãà äà ïðåäïîëîæèì, ÷å èñêàòå äà íàìåðèòå åëåìåíòèòå â äàäåí
ìàñèâ, êîèòî íå ñå ñðåùàò â äðóã ìàñèâ. Ìîæåòå äà íàïðàâèòå òîâà, êàòî
èçïîëçâàòå ôóíêöèÿòà array_diff(), çà äà íàìåðèòå ðàçëèêàòà íà äâà ìàñèâà.
Ôóíêöèÿòà array_diff() èìà ñëåäíèÿ ñèíòàêñèñ:
array_diff($Ìàñèâ_1,
$Ìàñèâ_2);
Ôóíêöèÿòà array_diff() âðúùà åëåìåíòèòå, êîèòî ñå íàìèðàò
â $Ìàñèâ_1, íî íå è â $Ìàñèâ_2. Ìîæåòå äà èçïîëçâàòå òàçè ôóíêöèÿ, çà äà
ïðåòúðñèòå ïîâå÷å îò åäèí ìàñèâ, êàòî ðàçäåëèòå ìàñèâèòå ñúñ
çàïåòàÿ.
Îáðúùàíå íà ðåäà íà åëåìåíòèòå â ìàñèâ
Äà
ïðåäïîëîæèì, ÷å èñêàòå äà îáðàáîòâàòå äàäåí ìàñèâ â îáðàòåí ðåä. Àêî ìàñèâúò å
êðàòúê, ìîæåòå äà èçïîëçâàòå ôóíêöèÿòà array_reverse(). Ôóíêöèÿòà
array_reverse()ïðèåìà êàòî ïàðàìåòúð ìàñèâ, ÷èèòî ðåä èñêàòå äà îáúðíåòå. Òÿ èìà
ñëåäíèÿ ñèíòàêñèñ:
$array2 = array_reverse($array1);
Àêî
ìàñèâúò âè å ìíîãî ãîëÿì, ôóíêöèÿòà array_reverse() ùå îòíåìå ìíîãî âðåìå.
Òîãàâà ìîæåòå äà èçïîëçâàòå öèêúëà for(), çà äà îáõîäèòå ìàñèâà â îáðàòåí ðåä.
Íàïðèìåð, ìîæåòå äà îáúðíåòå ìàñèâà Rate ( ðàçãëåæäàí ïðåäè òîâà ), êàòî
èçïîëçâàòå öèêúëà for ïî ñëåäíèÿ íà÷èí.
for (x = count($Rate) -1; Rate
>= 0 ; X--) { // îïåðàòîðè }
Òóê ïúðâî íàìèðàìå îáùèÿò áðîé íà
åëåìåíòèòå, êàòî èçïîëçâàìå ôóíêöèÿòà count(). Ñëåä òîâà öèêúëà îáõîæäà ìàñèâà
îò ïîñëåäíèÿ åëåìåíò, äî ïúðâèÿ
Ñîðòèðàíå íà
ìàñèâè
Ôóíêöèÿòà sort() å ïðîñòà ôóíêöèÿ ïðåäíàçíà÷åíà çà ñîðòèðàíå íà
åëåìåíòè
Ôóíêöèÿòà sort()
Ìîæåòå äà èçïîëçâàòå ôóíêöèÿòà sort(), çà äà
ñîðòèðàòå ìàñèâè ïî ÷èñëîâèÿ, èëè àçáó÷åí ðåä íà åëåìåíòèòå èì. Òàçè ôóíêöèÿ
ïðîìåíÿ èíäåêñèòå â ìàñèâèòå â çàâèñèìîñò îò ðåäà íà ñîðòèðàíå. Íàïðèìåð:
| $Student = array("John", "James", "Susan"); sort ($Student); |
| 0 James 1 John 2 Susan |
| 0 James Patt 1 John Smith 2 Susan Carter |
| JP James Patt JS John Smith SC Susan Carter |
| $Student = array ("John", "James", "Susan"); rsort($Student); |
| 0 Susan 1 John 2 James |
| SC Susan Carter JS John James JP James Patt |
| $Student = array ("b" =>"Susan", "d" =>"Andrew", "a"=>"John", "c" => "James"); |
| a John b Susan c James d Andrew |
| d Andrew c James b Susan a John |