Mengisi Array Multidimensi dengan Angka Berurutan di PHP
Dalam contoh sebelumnya, semua angka dalam sub-array sama. Sekarang mari kita buat agar angkanya meningkat, seperti ini:
<?php
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
?>
Untuk melakukan ini, Anda perlu membuat variabel penghitung khusus,
yang akan menambah nilainya sebesar
1 pada setiap iterasi dari loop
internal. Nilai penghitung inilah yang akan kita
tulis ke dalam array, seperti ini:
<?php
$arr = [];
$k = 1; // penghitung
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$arr[$i][$j] = $k; // menulis penghitung
$k++; // menambah penghitung
}
}
var_dump($arr);
?>
Kode dapat dikurangi dengan menempatkan definisi penghitung
di loop pertama, dan k++ - di loop kedua:
<?php
$arr = [];
for ($i = 0, $k = 1; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++, $k++) {
$arr[$i][$j] = $k;
}
}
var_dump($arr);
?>
Anda juga dapat menambah penghitung setelah penugasan:
<?php
$arr = [];
for ($i = 0, $k = 1; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$arr[$i][$j] = $k++;
}
}
var_dump($arr);
?>
Perhatikan bahwa dalam hal ini harus
pasti k++, bukan ++k, karena opsi kedua
akan menambah penghitung terlebih dahulu, baru kemudian menulis
ke dalam array (yaitu, hasilnya array akan dimulai dari dua,
bukan dari satu).
Bentuklah dengan menggunakan dua loop bersarang array berikut:
<?php
[[1, 2], [3, 4], [5, 6], [7, 8]]
?>
Bentuklah dengan menggunakan dua loop bersarang array berikut:
<?php
[[2, 4, 6], [8, 10, 12], [14, 16, 18], [20, 22, 24]]
?>
Bentuklah dengan menggunakan tiga loop bersarang array tiga dimensi berikut:
<?php
[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
?>