Пур кардани массивҳои чандчена бо рақамҳо ба тартиб дар PHP
Дар мисолҳои қаблӣ ҳамаи рақамҳо дар зермассивҳо яксон буданд. Биёед ҳоло ҳамин тавр кунем, ки рақамҳо афзоиш ёбанд, ҳамин тавр:
<?php
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
?>
Барои ин бояд як тағирёбандаи вижа-ҳисобкунак сохт,
ки ҳар дафъа дар ҳалқаи дарунӣ арзиши худро ба
1 зиёд кунад. Ҳамин арзиши ин ҳисобкунакро мо
ба массив менависем, ҳамин тавр:
<?php
$arr = [];
$k = 1; // ҳисобкунак
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$arr[$i][$j] = $k; // ҳисобкунакро менависем
$k++; // ҳисобкунакро зиёд мекунем
}
}
var_dump($arr);
?>
Метавон кӯдро кам кард, таърифи ҳисобкунакро
ба ҳалқаи аввал гузоштан, ва k++ - ба дуюм:
<?php
$arr = [];
for ($i = 0, $k = 1; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++, $k++) {
$arr[$i][$j] = $k;
}
}
var_dump($arr);
?>
Инчунин метавон зиёд кардани ҳисобкунакро баъд аз таъин кардан анҷом дод:
<?php
$arr = [];
for ($i = 0, $k = 1; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$arr[$i][$j] = $k++;
}
}
var_dump($arr);
?>
Диққат диҳед, ки дар ин ҳолат бояд
албатта k++ бошад, на ++k, зеро варианти дуюм
аввал зиёд кардани ҳисобкунакро иҷро мекунад, ва он гоҳ навиштан
ба массив (яъне дар натиҷа массив аз дуввум оғоз меёбад,
на аз якум).
Бо ёрии ду ҳалқаи часпондашуда массиви зеринро созед:
<?php
[[1, 2], [3, 4], [5, 6], [7, 8]]
?>
Бо ёрии ду ҳалқаи часпондашуда массиви зеринро созед:
<?php
[[2, 4, 6], [8, 10, 12], [14, 16, 18], [20, 22, 24]]
?>
Бо ёрии се ҳалқаи часпондашуда массиви сеченаи зеринро созед:
<?php
[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
?>