Wypełnianie wielowymiarowych tablic liczbami po kolei w PHP
W poprzednich przykładach wszystkie liczby w podtablicach były takie same. Teraz zróbmy tak, aby liczby rosły, w ten sposób:
<?php
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
?>
Aby to zrobić, należy utworzyć specjalną zmienną-licznik,
która będzie zwiększać swoją wartość o
1 przy każdej iteracji wewnętrznej
pętli. Wartość tego licznika będziemy
zapisywać w tablicy, w ten sposób:
<?php
$arr = [];
$k = 1; // licznik
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$arr[$i][$j] = $k; // zapisujemy licznik
$k++; // zwiększamy licznik
}
}
var_dump($arr);
?>
Można zmniejszyć kod, umieszczając definicję licznika
w pierwszej pętli, a k++ - w drugiej:
<?php
$arr = [];
for ($i = 0, $k = 1; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++, $k++) {
$arr[$i][$j] = $k;
}
}
var_dump($arr);
?>
Można również zwiększać licznik po przypisaniu:
<?php
$arr = [];
for ($i = 0, $k = 1; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$arr[$i][$j] = $k++;
}
}
var_dump($arr);
?>
Zwróć uwagę, że w tym przypadku musi być
koniecznie k++, a nie ++k, ponieważ drugi wariant
najpierw wykona zwiększenie licznika, a dopiero potem zapis
do tablicy (czyli w rezultacie tablica zacznie się od dwójki,
a nie od jedynki).
Sformułuj za pomocą dwóch zagnieżdżonych pętli następującą tablicę:
<?php
[[1, 2], [3, 4], [5, 6], [7, 8]]
?>
Sformułuj za pomocą dwóch zagnieżdżonych pętli następującą tablicę:
<?php
[[2, 4, 6], [8, 10, 12], [14, 16, 18], [20, 22, 24]]
?>
Sformułuj za pomocą trzech zagnieżdżonych pętli następującą trójwymiarową tablicę:
<?php
[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
?>