Массивҳо

Ба дигарон равон намоед


Массивҳо дар ҳалли бисёр масъалаҳо муфиданд. Масалан, барои нигоҳ доштани қимати ҳамаи элементҳои матриса, ҳаҷми маҳсулот дар ҳамаи моҳҳои сол ва ғайра. Массив (array) ин роҳест барои нигоҳ доштани бисёр қиматҳо зери як ном. Массив аз элементҳо иборат аст, элементҳои массив метавонанд тағйирёбандаҳои намуди дилхоҳ бошанд. Камтар пештар рафта мегӯям, ки сохтор (structure) ва синф (class) низ элементҳои массив шуда метавонанд.

Массивҳоро метавон чунин тасаввур намуд:

[ ]   [ ]   [ ]   [ ]   [ ]   …   [ ]

Тасаввур мекунем, ки дар ин ҷо ҳар як ҷуфти қафсҳои квадратӣ ин элементи массив аст. Массивро инчунин ҳамчун гурӯҳи элементҳои паҳлӯи ҳамдигар истода тасаввур кардан мумкин аст. Массивро, ба монанди тағйирёбандаҳо, пеш аз истифода бурдан эълон кардан зарур аст. Яке аз тарзҳои эълони массив чунин аст:

$array_name = array();

Дар ин ҷо array_name — номи массив, array — калимаи махсуси массивро муайянкунанда мебошанд.

Ҳар як элементи массив рақами тартибии худро дорад, ки онро индекси элементи массив меноманд. Аён аст, ки индекс адади бутун аст. Рақамгузории элементҳои массив дар PHP аз нул оғоз меёбад. Яъне 0 — индекси элементи якуми массив мебошад. Индекси элементи дуюми массив 1 мебошад ва ҳоказо. Функсияи count($array_name) миқдори элементҳои массивро бозмегардонад.Пас, индекси элементи охирони массив ба count($array_name)-1 баробар аст (миқдори умумии элементҳои массив тарҳи 1). Мисол:
namuna21.php

$x = array();
 
for($i=0;$i<10;$i++)
               $x[$i]=$i*$i;
                
for($i=0;$i<count($x);$i++)
               echo «$i — $x[$i]<br>»;

Дар коди болои тағйирёбандаи бутун i аз 0 то 9 қимат мегирад. Массиви x иборат аз 10 элемент аст. Ҳар як элементи массив худ тағйирёбанда аст. Бо ёрии оператори for ду сикл ташкил карда шудааст. Дар сиклҳо тағйирёбанда i аз 0 то 9 қимат гирифта, қиматҳои элементҳои массиви x, элементи якум — x[0], элементи дуюм — x[1], …, элементи даҳум — x[9] мебошанд. Қимати элемент ба квадрати индексаш баробар мебошад. Дар сикли дуюм индекс ва қимати элементи мувофиқ чоп карда мешаванд. Ҳангоми кӯшиши ба элементи ёздаҳум y[10] қимат бахшидан, барнома шикаст мехӯрад. Яъне бо элементи охирони массив эҳтиёткорона рафтор намудан лозим аст.

Мисоли дигар:
namuna22.php

$x = array();
 
for($i=0;$i<10;$i++)
               $x[$i]=rand(1,100);
                
for($i=0;$i<count($x);$i++)
               echo «$i — $x[$i]<br>»;

Дар ин ҷо функсияи rand(1,100) дар вақти иҷрои барнома адади тасодуфии дар байни 1 ва 100 бударо ҳосил мекунад. Ба шумо зарур аст, ки қисмхои гуногуни ин кодро тағйир дода, онро иҷро карда бинед.

 Массивҳое, ки мо то ин дам муоина намудем массивҳои якченака номида мешаванд. Дар PHP ташкили массивҳои бисёрченака низ имконпазир аст, ки ин ҷо массивҳои дученакаро дида мебароем. Масалан, барои ифода намудани тахтаи шоҳмот массиви дученакаи 8 бар 8 лозим аст. Массивҳои дученакаро чунин тасаввур кардан мумкин аст:

[ ]   [ ]   [ ]   [ ]   …   [ ]
[ ]   [ ]   [ ]   [ ]   …   [ ]
[ ]   [ ]   [ ]   [ ]   …   [ ]
[ ]   [ ]   [ ]   [ ]   …   [ ]
……………………………
[ ]   [ ]   [ ]   [ ]   …   [ ]

Яке мисоли массиви дученака дар PHP-ро меорем ва таҳлил мекунем:

<body>
<h2>Массиви дученака</h2>
<table>
<?php
for($k=1;$k<=10;$k++)
               for ($j=1;$j<=10;$j++)
                               $multable[$k][$j]=$j*$k;
for ($k=1;$k<=10;$k++) {
               print «<tr>»;
               for ($j=1;$j<=10;$j++)
                               echo «<td>»,$multable[$j][$k],»</td>»;
               print «</tr>»;
}
?>
</table>
</body>

Дар ин скрипт тавассути тегҳои HTML сарлавҳаи «Массиви дученака» ва ҷадвали 10 бар 10 катака дар браузер чоп мешаванд. Дар скрипт ду ҷуфти cиклҳои for (яъне сиклҳои дуқабата) истифода шудаанд. Дар сикли дуқабатаи якум ҳосили зарби тағйирёбандаҳои j ва k ба элементҳои массиви дученакаи $multable бахшида мешавад.

Тавассути сикли дуқабатаи дуюм сатри ҷадвал (tr), катакҳои он (td) ва қимати элементҳои массив ($multable[$j][$k]) ба экран хориҷ карда мешаванд.

Ҳакимов Раҳматҷон

Манба:   oftob.com

Маводҳои ҳамсон