PHP. Массивҳо

Печать

Массивҳо дар ҳалли бисёр масъалаҳо муфиданд. Масалан, барои нигоҳ доштани қимати ҳамаи элементҳои матриса, ҳаҷми маҳсулот дар ҳамаи моҳҳои сол ва ғайра. Массив (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 бударо ҳосил мекунад. Ба шумо зарур аст, ки қисмхои гуногуни ин кодро тағйир дода, онро иҷро карда бинед.

Мисол:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Массиви якченака. Мисолҳо</title>
</head>
<body>
<p>Мисоли 1: x[i] = i</p>
<?php
$n = 10;
for($i=0;$i<$n;$i++)
$x[$i]=$i;
print_array($x);
?>

<p>Мисоли 2: x[i] = i*2+1</p>
<?php
for($i=0;$i<$n;$i++)
$x[$i]=$i*2+1;
print_array($x);
?>

<p>Мисоли 3: x[i] = rand(1,10)</p>
<?php
for($i=0;$i<$n;$i++)
$x[$i]=rand(1,10);
print_array($x);
?>

<p>Мисоли 4: x[i] = rand(20,40), y[i] = x[i]-2</p>
<?php
for($i=0;$i<$n;$i++) {
$x[$i]=rand(20,40);
$y[$i]=$x[$i]-2;
}
print_array($x);
echo "<br>";
print_array($y);
?>
</body>
</html>

<?php
function print_array($arr)
{
$n = count($arr);
echo "<table border='1'>";
echo "<tr>";
echo "<th>Индекс</th>";
for($i=0;$i<$n;$i++)
echo "<td>$i</td>";
echo "</tr>";
echo "<tr>";
echo "<th>Массив</th>";
for($i=0;$i<$n;$i++)
echo "<td>$arr[$i]</td>";
echo "</tr>";
echo "</table>";
}
?>

Мисол:

<?php
$n = 6;
$s = 0;
echo "Сумма = $s";
echo "<table border='1'>";
echo "<tr><th>Индекс</th><th>Массив</th><th>Сумма</th><tr>";
for($i=0;$i<$n;$i++) {
$x[$i]=rand(1,5);
$s += $x[$i];
echo "<tr><td>$i</td><td>$x[$i]</td><td>$s</td></tr>";
}
echo "</table>";
echo "Сумма = $s";
?>

САВОЛҲО БАРОИ МУСТАҲКАМКУНӢ
1. Барномае нависед, ки қимати минималии массиви додашударо ёбад.
2. Барномае нависед, ки қимати максималии массиви додашударо ёбад.
3. Барномае нависед, ки қимати миёнаи массиви додашударо ёбад.

Добавить комментарий


Защитный код
Обновить

Произведение «OFTOB.COM» публикуется на условиях лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Непортированная.