PHP - ÷àñò 5 (Ðàáîòà ñ ìàñèâè)
fix3d òðóäíîñò:

âèäÿí:
3833
Ðàáîòà ñ
ìàñèâè
Èíèöèàëèçèðàíå íà ìàñèâè
Ìàñèâèòå ìîãàò äà ñå
èíèöèàëèçèðàò ïî äâà íà÷èíà. Ìîæåòå äà èíèöèàëèçèðàòå ìàñèâ, êàòî
èçïîëçâàòå:
Èäåíòèôèêàòîðà íà ìàñèâà
Ôóíêöèÿòà array()
Èçïîëçâàíå íà èäåíòèôèêàòîðà íà ìàñèâ
Èäåíòèôèêàòîðà íà ìàñèâ å
ïðàçíî ìíîæåñòâî îò êâàäðàòíè ñêîáè. Ìîæåòå äà èçïîëçâàòå èäåíòèôèêàòîðà íà
ìàñèâ, çà äà èíèöèàëèçèðàòå ìàñèâà Student ïî ñëåäíèÿ íà÷èí:
$Student[] = "James"
$Student[] =
"John" |
Òóê ïðèñâîèõòå ñòîéíîñòèòå James è John
íà ìàñèâà Student. Îáúðíåòå âíèìàíèå, ÷å íå ñòå çàäàëè èíäåêñè. Ïîðàäè òàçè
ïðè÷èíà íà èíäåêñèòå 0 è 1 ñà ïðèñâîåíè ñúîòâåòíî ñòîéíîñòèòå James è
John.
Ìîæåòå ñúùî òàêà äà çàäàäåòå èíäåêñèòå ÿâíî.
Íàïðèìåð:
$Student[1] = "John"$Student[0]
Îáèêíîâåíî ñå ïðèñâîÿâàò ñòîéíîñòè íà ïîñëåäîâàòåëíè ñòîéíîñòè â
ìàñèâà. Íî ìîæåòå äà ïðèñâîèòå ñòîéíîñòè íà ïðîèçâîëíè èíäåêñè â ìàñèâà.
Íàïðèìåð:
$Student[10] = "James"
$Student[3] =
"John" |
 ãîðíèÿ ïðèìåð ñà ïðèñâîåíè ñòîéíîñòè
íà íåïîñëåäîâàòåëíè èíäåêñè â ìàñèâà. Àêî òðÿáâà äà çàäàäåòå èíäåêñ íà íîâà
ñòîéíîñò, íîâèÿ èíäåêñ, ùå å ñ åäèíèöà ïî-ãîëÿì îò ïîñëåäíèÿ èíäåêñ. Íàïðèìåð,
àêî òðÿáâà äà çàäàäåòå èíäåêñ íà íîâ åëåìåíò ñúñ ñòîéíîñò Sarah, òî íîâèÿò
èíäåêñ ùå å 11, òúé êàòî ïîñëåäíèÿ èíäåêñ å 10
Èçïîëçâàíå íà ôóíêöèÿòà
array()
Åäèí ïî-ïðîñò íà÷èí çà èíèöèàëèçèðàíå íà ìàñèâ å èçïîëçâàíåòî íà
ôóíêöèÿòà array(). Òîâà å ïðîñòî, çàùîòî ÷ðåç èçïîëçâàíåòî íà ôóíêöèÿòà array()
çàäàâàòå åäíîâðåìåííî ìíîæåñòâî ñòîéíîñòè. Ìîæåòå äà èçïîëçâàòå ôóíêöèÿòà
array(), çà äà äåôèíèðàòå ìàñèâà Student ïî ñëåäíèÿ íà÷èí:
| $Student = array("James", "John",
"Susan"); |
Ñåãà, àêî èçïîëçâàòå êîìàíäàòà Print
"Student [1]", íà åêðàíà ùå ñå ïîÿâè James. Ìîæåòå äà èçïîëçâàòå îïåðàòîðà =>
ïî ñëåäíèÿ íà÷èí:
| $Student = array("James", 5 => "John",
"Susan"); |
 ãîðíèÿ ïðèìåð íà ñòîéíîñòòà James
ñå ïðèñâîÿâà èíäåêñ 0, íà John èíäåêñ 5, a íà Susan èíäåêñ
6
Ðàáîòà ñ ìàñèâè
Èçïîëçâàéêè âãðàäåíèòå ôóíêöèè, ìîæåòå äà
èçâúðøâàòå ñëåäíèòå îïåðàöèè:
Äà ïðîìåíÿòå ðàçìåðà íà ìàñèâè.
Äà
îáõîæäàòå ìàñèâ.
Äà îòêðèâàòå åëåìåíòè íà ìàñèâ.
Äà îáúðíåòå ðåäà íà
ìàñèâ.
Äà ñîðòèðàòå ìàñèâ.
Ïðîìÿíà íà ðàçìåðà íà
ìàñèâ
Ìîæåòå äà ïðîìåíÿòå ðàçìåðà íà ìàñèâ, êàòî èçïîëçâàòå ðàçëè÷íè
ôóíêöèè, ïðåäîñòàâåíè îò PHP.
×ðåç òÿõ ìîæåòå"
Äa îïðåäåëèòå ðàçìåðà è
áðîÿ íà åëåìåíòèòå â ìàñèâ. Ìîæåòå äà îñúùåñòâèòå äîñòúï äî åëåìåíò, êàòî
èçïîëçâàòå èíäåêñà ìó. Îáà÷å çà äà èç÷èñëèòå áðîÿ íà åëåìåíòèòå â ìàñèâ, òðÿáâà
äà èçïîëçâàòå ôóíêöèÿòà count(). Ìîæåòå ñúùî òàêà äà èç÷èñëèòå áðîÿ íà
åëåìåíòèòå â ìàñèâ. Çà äà ðàçáåðåòå ïî-äîáðå äåéñòâèåòî íà ôóíêöèÿòà count(), ùå
ðàçãëåäàìå ñëåäíèÿ ïðèìåð.
$Student array ( "Susan", "Betty", "Wiki");
$Number - count
($Student);
Print $Number; |
Ãîðíèÿ êîä
èíèöèàëèçèðà ìàñèâ Student ñ òðè åëåìåíòà. Ôóíêöèÿòà count() âðúùà áðîÿ íà
åëåìåíòèòå â ìàñèâà. Òîé ñå ñúõðàíÿâà â ïðîìåíëèâàòà $Number. Êîãàòî
âèçóàëèçèðàòå ñòîéíîñòòà íà ïðîìåíëèâàòà ùå âèäèòå, ÷å òÿ å 3. Çà äà íàìåðèòå
ñòîéíîñòòà íà èíäåêñà íà ïîñëåäíèÿ åëåìåíò, òðÿáâà äà èçâàäèòå åäèíèöà îò
ñòîéíîñòòà íà ïðîìåíëèâàòà $Number.
ÄÀ ïðîìåíèòå ðàçìåðà íà ìàñèâ. Ìîæåòå äà
íàìàëÿâàòå, èëè óâåëè÷àâàòå ðàçìåðà (äúëæèíàòà) íà ìàñèâ, êàòî èçïîëçâàòå
ðàçëè÷íèòå ôóíêöèè â PHP. Ïðîìÿíàòà íà ðàçìåðà íà ìàñèâ âêëþ÷âà:
Íàìàëÿâàíå
íà ðàçìåðà íà ìàñèâ. Çà äà íàìàëèòå ðàçìåðà íà ìàñèâ, òðÿáâà äà èçïîëçâàòå
ôóíêöèÿòà array_slice(). Ôóíêöèÿòà array_slice, ïîëó÷àâà êàòî ïàðàìåòúð ìàñèâ,
íà÷àëíà ïîçèöèÿ è äúëæèíà. Íàïðèìåð, àêî èìàòå ìàñèâ îò ñåäåì åëåìåíòà è èñêàòå
äà íàìàëèòå áðîÿ ìó äî 4 åëåìåíòà, èçïîëçâàòå ôóíêöèÿòà array_slice()
$Student array ("a", "b", "c", "d", "e", "f", "g",
"h");
array_slice($Student, 4); |
Ôóíêöèÿòà
array_slice íàìàëÿâà áðîÿ íà åëåìåíòèòå îò 7 íà 4.
Âèäÿõòå, êàê ìîæåòå äà
íàìàëÿâàòå äúëæèíàòà íà ìàñèâ. Ïðè òîâà íàìàëÿâàíå îáà÷å, ñå ïðåìàõâàò
ïîñëåäíèòå åëåìåíòè îò ìàñèâà. Àêî èñêàòå äà ïðåìàõíåòå ïúðâèòå åëåìåíòè îò
ìàñèâà, òðÿáâà äà èçïîëçâàòå ôóíêöèÿòà array_shift().
Ôóíêöèÿòà array_shift()
ïðåìàõâà ïúðâèÿò åëåìåíò îò ìàñèâ. Åëåìåíòèòå ñå ïðåäàâàò íà ìàñèâà êàòî
àðãóìåíò. Íàïðèìåð, íåêà äà èíèöèàëèçèðàìå ìàñèâ ïî ñëåäíèÿ íà÷èí:
| $Student array ( "Susan", "Betty",
"Wiki"); |
Ñåãà ìîæåòå äà èçïîëçâàòå ôóíêöèÿòà
array_shift() è äà ïðåìàõíåòå ðåçóëòàòà â ïðîìåíëèâàòà $New
| $New = arraay
array_shift($Student); |
Ïúðâèÿò åëåìåíò îò
ìàñèâà $Student, àâòîìàòè÷íî ùå áúäå ïðåìàõíàò îò ôóíêöèÿòà
array_shift().
Óâåëè÷àâàíå äúëæèíàòà íà ìàñèâ. Äà ïðåäïîëîæèì, ÷å å
íåîáõîäèìî äà ñå äîáàâÿ îùå åëåìåíòè â ãîðíèÿ ìàñèâ $Sudent. Ìîæåòå äà íàïðàâèòå
òîâà, êàòî èçïîëçâàòå ôóíêöèÿòà array_push(). Ôóíêöèÿòà array_push() ïðèåìà êàòî
ïàðàìåòúð ìàñèâ è âðúùà êàòî ðåçóëòàò îáùèÿ áðîé íà åëåìåíòèòå â ìàñèâà. Äà
ðàçãëåäàìå ñëåäíèÿ ïðèìåð:
| $Student array ( "Susan", "Betty", "Wiki"); $Insert = array_push
($Student, a, b, c); |
Òóê ñìå âçåëè ìàñèâà
Student è ñìå äîáàâèëè êúì íåãî åëåìåíòèòå a, b, è c. Ñëåä òîâà ñúõðàíÿâàìå
åëåìåíòèòå â íîâ ìàñèâ ñ èìå Insert, êîéòî ñúäúðæà øåñò ñòîéíîñòè.
Ñåãà äà
ïðåäïîëîæèì, ÷å èñêàòå äà äîáàâèòå âñè÷êè ñòîéíîñòè èò åäèí ìàñèâ â äðóã.  òîçè
ñëó÷àé, ìîæåòå äà ñúáåðåòå ñàìèòå ìàñèâè, âìåñòî äà ðàáîòèòå åëåìåíò ïî åëåìåíò,
çàùîòî å ïî-áúðçî è ïî-ëåñíî. Íå ìîæåòå äà ñúáèðàòå ìàñèâè, êàòî èçïîëçâàòå
ôóíêöèÿòà array_push. Â PHP èìà ôóíêöèÿ ñ èìå array_marge(), êîÿòî âè ïîçâîëÿâà
äà ñëååòå äâà ìàñèâà.
Ôóíêöèÿòà array_marge() ñëèâà äâà èëè ïîâå÷å ìàñèâà è
âðúùà êàòî ðåçóëòàò êîìáèíèðàíèÿ ìàñèâ.
Íàïðèìåð:
$Student array ( "Susan", "Betty", "Wiki");
$Class = array ("4", "5",
"6");
$Combine = $Student + $Class; |
Ìàñèâà
Combine, ñúäúðæà êîïèÿ îò âñè÷êè åëåìåíòè îò ìàñèâèòå Student è Class. Òàêà
ìàñèâà Combine ùå ñúäúðæà ñëåäíèòå ñòîéíîñòè:
Ñåãà äà ïðåäïîëîæèì, ÷å
ìàñèâèòå Ñòóäåíò è Class èìàò íÿêîëêî îáùè åëåìåíòà. Íàïðèìåð:
| $Student array ( "Susan", "Betty", "5"); $Class = array ("4", "5",
"6"); |
Êîãàòî ñëååòå ìàñèâèòå, îáùèÿò åëåìåíò,
ùå ïðèñúñòâà ñàìî âåäíúæ â ðåçóëòàòíèÿ ìàñèâ. Îáà÷å, àêî íå èñêàòå äà çàãóáèòå
îáùèÿ åëåìåíò â äâàòà ìàñèâà, ìîæåòå äà èçïîëçâàòå ôóíêöèÿòà
array_marge_recursivw(). Ìîæåòå äà èçïîëçâàòå òàçè ôóíêöèÿ, è àêî íå èñêàòå äà
çàãóáèòå èíäåêñè ïî âðåìå íà ñëèâàíåòî íà ìàñèâèòå. Ôóíêöèÿòà
array_marge_recursivw() êîïèðà âñè÷êè åëåìåíòè, êîèòî ñà â ìàñèâèòå.
Íàìèðàíå
íà ñå÷åíèåòî èëè îáåäèíåíèåòî íà ìàñèâè. Ïîíÿêîãà ìîæå äà âè ñå íàëîæè äà
íàìåðèòå ñå÷åíèåòî íà äâà ìàñèâà.  òåçè ñëó÷àè òðÿáâà äà èçïîëçâàòå ôóíêöèÿòà
array_intersect(). Äà ðàçãëåäàìå íàïðèìåð ñëåäíèÿ ïðîãðàìåí ôðàãìåíò:
| $old = array ("a", "b", "c"); $new = array ("c", "d", "e"); $Intersection
= array_marge_recursivw($old, $new); |
 ãîðíèÿ
êîä ïúðâî ñå èíèöèàëèçèðà ìàñèâ old è new. Ñëåä òîâà ñå íàìèðà ñå÷åíèåòî íà
äâàòà ìàñèâà è ðåçóëòàòúò ñå ñúõðàíÿâà â äðóã ìàñèâ.
Àêî èñêàòå äà íàìåðèòå
âñè÷êè åëåìåíòè è â äâàòà ìàñèâà, èçïîëçâàéòå ôóíêöèÿòà union. Ôóíêöèÿòà union
èìà ñëåäíèÿ ñèíòàêñèñ:
Union = (ìàñèâ);
Íàìèðàíå íà
óíèêàëíèòå åëåìåíòè íà ìàñèâ. Çà äà íàìåðèòå óíèêàëíèòå (íåïîâòàðÿùè ñå )
åëåìåíòè íà àìñèâ, òðÿáâà äà èçïîëçâàòå ôóíêöèÿòà array_unique(). Òîâà å
âãðàäåíà ôóíêöèÿ â PHP. Ôóíêöèÿòà array_unique() ïðèåìà ìàñèâà êàòî åëåìåíò,
ïðåìàõâà äóáëèðàùèòå ñå åëåìåíòè â íåãî è êàòî ðåçóëòàò âðúùà íîâ ìàñèâ. Ìîæåòå
äà èçïîëçâàòå òàçè ôóíêöèÿ, êàêòî âúðõó íîìåðèðàíè ìàñèâè, òàêà è âúðõó
àñîöèàòèâíè ìàñèâè. Ôóíêöèÿòà array_unique() èìà ñëåäíèÿ
ñèíòàêñèñ:
$unique = array_unique($old);
Êîìåíòàðè (1)