Ïîìîãíè íè äà íàïðàâèì Uroci.net ïî - áîãàò! Äîáàâè óðîê
Êàòåãîðèè Äðóãè óðîöè Adobe Photoshop Adobe Illustrator Adobe Flash Adobe Fireworks DreamWeaver CSS è HTML Corel Draw Image Ready PHP
PHP
SEO CMS Microsoft Windows Microsoft Word Microsoft Excel PowerPoint Microsoft Access Microsoft Publisher Linux Visual basic JavaScript Ajax 3ds Max Maya 3D C++ Sound Forge Gimp SWiSH

PHP - ÷àñò 5 (Ðàáîòà ñ ìàñèâè)

PHP » PHP
fix3d   òðóäíîñò:    âèäÿí: 3830



Îáõîæäàíå íà ìàñèâ
ÇÀ äà èçâúðøèòå îïåðàöèè ïîñëåäîâàòåëíî âúðõó åëåìåíòèòå íà ìàñèâà, òðÿáâà äà ìîæåòå äà ãî îáõîæäàòå ïîñëåäîâàòåëíî. Èìà ðàçëè÷íè íà÷èíè çà îáõîæäàíå íà âñåêè åëåìåíò íà ìàñèâ. Íî íàé-óäîáíèÿò å èçïîëçâàíåòî íà öèêúëà 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

Îáúðíåòå âíèìàíèå, ÷å èíäåêñèòå ñà ïðîìåíåíè ñëåä ñîðòèðàíåòî.
Ñåãà äà ïðåäïîëîæèì, ÷å èìàòå àñîöèàòèâåí ìàñèâ. Íàïðèìåð:

$Student = array ("JS" -=> "John Smith",
("JP" -=> "James Patt",
("SC" -=> "Susan Carter");

Àêî ñîðòèðàòå ìàñèâà, èçïîëçâàéêè ôóíêöèÿòà sort(), è ñëåä òîâà ïîêàæåòå èíäåêñà è ñòîéíîñòòà íà åëåìåíòèòå îò ìàñèâà, ùå ïîëó÷èòå ñëåäíèÿ ðåçóëòàò:
0 James Patt
1 John Smith
2 Susan Carter

Îáúðíåòå âíèìàíèå, ÷å íèçîâèòå èíäåêñè â àñîöèàòèâíèÿ ìàñèâ ñà ïðåîáðàçóâàíè äî ÷èñëîâè èíäåêñè. òîâà å ãîëåìèÿò ïðîáëåì ïðè èçïîëçâàíåòî íà ôóíêöèÿòà sort() çà ñîðòèðàíåòî íà àñîöèàòèâíè ìàñèâè. Òîçè ïðîáëåì, ìîæå äà ñå èçáåãíå, àêî ñå èçïîëçâà ôóíêöèÿòà asort().
Ñúùåñòâóâàò íÿêîëêî äðóãè ôóíêöèè, êîèòî âè ïîìàãàò çà ñîðòèðàíåòî íà àñîöèàòèâåí è íîìåðèðàí ìàñèâ. Òå ñà:
asort(): Ôóíêöèÿòà asort() ñå èçïîëçâà çà ñîðòèðàíåòî íà ìàñèâ, áåç äà ñå ïðîìåíÿò èíäåêñèòå. Àêî ñîðòèðàòå ìàñèâà Student ñ ôóíêöèÿòà asort(), ùå ïîëó÷èòå ñëåäíèÿ ðåçóëòàò:
JP James Patt
JS John Smith
SC Susan Carter

rsort() Ôóíêöèÿòà rsort() å ïîäîáíà íà ôóíêöèÿòà sort(). Åäèíñòâåíàòà ðàçëèêà å, ÷å ñîðòèðà åëåìåíòèòå â îáðàòåí ðåä. Äà ðàçãëåäàìå ñëåäíèÿ ïðèìåð:
$Student = array ("John", "James", "Susan"); rsort($Student);

Ñëåä ñîðòèðàíåòî íà ìàñèâà, ôóíêöèÿòà rsort() ùå ïîëó÷è ñëåäíèÿ ðåçóëòàò:
0 Susan
1 John
2 James

arsort()Ôóíêöèÿòà arsort() å ïîäîáíà íà ôóíêöèÿòà asort(). Åäèíñòâåíàòà ðàçëèêà å, ÷å ñîðòèðà åëåìåíòèòå â îáðàòåí ðåä. Äà ïðåäïîëîæèì, ÷å èñêàòå äà ñîðòèðàòå åëåìåíòèòå íà ìàñèâà Student â îáðàòåí ðåä, êàòî ïðè òîâà èíäåêñèòå îñòàâàò íåïðîìåíåíè. Çà äà èçâúðøèòå òîâà òðÿáâà äà èçïîëçâàòå ôóíêöèÿòà arsort().
Ïðèëàãàéêè íà ôóíêöèÿòà arsort() çà ñîðòèðàíå íà ìàñèâà Student, ùå ïîëó÷èòå ñëåäíèÿ ðåçóëòàò:
SC Susan Carter
JS John James
JP James Patt

ksort() Çà äà ñîðòèðàòå èíäåêñèòå íà àñîöèàòèâåí ìàñèâ, òðÿáâà äà èçïîëçâàòå ôóíêöèÿòà ksort(). Äà ïðåäïîëîæèì, ÷å èìàòå ìàñèâà Student è òðÿáâà äà ãî ñîðòèðàòå ïî èíäåêñèòå ìó.
$Student = array ("b" =>"Susan", "d" =>"Andrew", "a"=>"John", "c" => "James");

Ñîðòèðàéêè ìàñèâà Student ñ ïîìîùòà íà ôóíêöèÿòà ksort(), ùå ïîëó÷èòå ñëåäíèÿ ðåçóëòàò:
a John
b Susan
c James
d Andrew

krsort() Ôóíêöèÿòà krsort() å ïîäîáíà íà ôóíêöèÿòà ksort(). Åäèíñòâåíàòà ðàçëèêà å, ÷å òÿ ñîðòèðà åëåìåíòèòå â îáðàòåí ðåä. Òàêà, ÷å àêî èçïîëçâàòå ôóíêöèÿòà krsort() âúðõó ìàñèâà Student, ùå ïîëó÷èòå ñëåäíèÿ ðåçóëòàò

d Andrew
c James
b Susan
a John


èçòî÷íèê íà óðîêà: http://www4u.search.bg


Ñòðàíèöè: «1 2 3

Êîìåíòàðè (1)

azerot íà 17.07 2008 â 17:42÷.
(clap) Äîñòà äîáðå íàïðàâåíî!

Ðåãèñòðèðàéòå ñå, çà äà äîáàâèòå êîìåíòàð

ðåêëàìà

© Âñè÷êè ïðàâà çàïàçåíè. 2006-2008. Created by: Site.bg
Ïðåïîðú÷âàìå: IT Íîâèíè | Êèíî è èãðè | Äèïëîìà.áã | Paparak.bg | Òóíèíã Ïîðòàë | uchenik.com | TRAVEL òóðèçúì | Ðåôåðàòè | AmAm.bg | Èäå.ëè | Êóðñîâè ðàáîòè | AnimeS-bg.com | Ôîòî Ôîðóì | Çàïîçíàíñòâà | Ìðåæà îò ïðèÿòåëè | IT Light | Spodeli.net | Ôîòî-Êóëò | IDG.BG | Teenproblem.net | Áëîã - Îáðàçîâàíèå | Fresh-BG.com | Hanovete.com | Bulfleet.com | Mythlands.com | Ohoboho.com | Êàçàíëúê.Com | News24 | Setcom.bg | Atol.bg | Elmaz.com | MobileBulgaria.com