Vul van multidimensionele skikkings met getalle in volgorde in PHP
In vorige voorbeelde was al die getalle in die subskikkings dieselfde. Laat ons nou maak sodat die getalle toeneem, soos volg:
<?php
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
?>
Om dit te doen, moet ons 'n spesiale tellerveranderlike maak,
wat sy waarde sal verhoog met
1 by elke iterasie van die innerlike
lus. Die waarde van hierdie teller is wat ons
in die skikking sal skryf, soos volg:
<?php
$arr = [];
$k = 1; // teller
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$arr[$i][$j] = $k; // skryf teller
$k++; // verhoog teller
}
}
var_dump($arr);
?>
Die kode kan verminder word deur die definisie van die teller
in die eerste lus te plaas, en k++ - in die tweede:
<?php
$arr = [];
for ($i = 0, $k = 1; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++, $k++) {
$arr[$i][$j] = $k;
}
}
var_dump($arr);
?>
Jy kan ook die teller verhoog na toewysing:
<?php
$arr = [];
for ($i = 0, $k = 1; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$arr[$i][$j] = $k++;
}
}
var_dump($arr);
?>
Let daarop dat in hierdie geval dit moet wees
noodwendig k++, en nie ++k nie, aangesien die tweede opsie
eers die teller sal verhoog, en dan skryf
na die skikking (dit wil sê die skikking sal begin met twee,
en nie met een nie).
Vorm met behulp van twee geneste lusse die volgende skikking:
<?php
[[1, 2], [3, 4], [5, 6], [7, 8]]
?>
Vorm met behulp van twee geneste lusse die volgende skikking:
<?php
[[2, 4, 6], [8, 10, 12], [14, 16, 18], [20, 22, 24]]
?>
Vorm met behulp van drie geneste lusse die volgende driedimensionele skikking:
<?php
[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
?>