Melakukan Perulangan dengan loop Bersarang
Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 30 dari 68.
Saat bekerja dengan array 2D, kamu sering perlu memproses setiap elemen, yang mengharuskan kamu mengunjungi setiap baris lalu setiap kolom di dalam baris tersebut. Di sinilah perulangan bersarang menjadi penting. Kamu menggunakan satu perulangan di dalam perulangan lain untuk menelusuri seluruh struktur grid secara sistematis.
Perulangan luar mengiterasi setiap baris array 2D, sedangkan perulangan dalam memproses setiap elemen di dalam baris saat ini. Berikut cara kerjanya dengan perulangan foreach:
<?php
$schedule = [
["Meeting", "Lunch", "Presentation"],
["Training", "Review", "Planning"],
["Workshop", "Break", "Demo"]
];
foreach ($schedule as $day) {
foreach ($day as $appointment) {
echo $appointment . "\n";
}
}
?>Kamu juga bisa menggunakan perulangan for tradisional saat membutuhkan kontrol lebih besar atas indeks. Pendekatan ini memberimu akses ke posisi baris dan kolom:
<?php
for ($row = 0; $row < count($schedule); $row++) {
for ($col = 0; $col < count($schedule[$row]); $col++) {
echo "Day " . ($row + 1) . ", Time " . ($col + 1) . ": " . $schedule[$row][$col] . "\n";
}
}
?>Pola perulangan bersarang ini sangat penting untuk memproses array 2D secara menyeluruh, baik saat kamu menampilkan data, melakukan perhitungan, maupun mencari nilai tertentu di seluruh struktur grid.
Tantangan
MudahKamu akan menerima satu input: sebuah array 2D yang merepresentasikan susunan tempat duduk di ruang kelas dalam format JSON. Setiap array bagian dalam merepresentasikan satu baris tempat duduk, dan setiap elemennya berisi nama siswa atau string kosong untuk tempat duduk yang tidak terisi. Baca input, ubah string JSON menjadi array 2D, gunakan perulangan bersarang untuk menelusuri seluruh susunan tempat duduk, lalu cetak nama setiap siswa beserta posisinya dalam format: Row X, Seat Y: Name
Lewati tempat duduk yang tidak terisi (string kosong) dan cetak informasi hanya untuk tempat duduk yang terisi. Nomor baris dan tempat duduk dimulai dari 1 (bukan 0).
Format input: Satu baris yang berisi array JSON yang merepresentasikan susunan tempat duduk (contoh: [["Alice","Bob",""],["","Charlie","Diana"],["Eve","","Frank"]])
Output yang diharapkan: Setiap tempat duduk yang terisi dicetak pada baris terpisah dalam format Row X, Seat Y: Name, dengan X sebagai nomor baris dan Y sebagai nomor tempat duduk (keduanya dimulai dari 1)
Coba sendiri
<?php
// Baca input JSON
$input = trim(fgets(STDIN));
// Ubah string JSON menjadi array 2D
$seating = (array)json_decode($input, true);
// TODO: Tulis kodemu di bawah ini
// Gunakan perulangan bersarang untuk menelusuri baris dan kursi
// Ingat, lewati kursi kosong dan beri nomor pada baris serta kursi mulai dari 1
?>Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Fungsi Lanjutan
Fungsi AnonimClosure dan 'use'Fungsi PanahFungsi CallbackMenggunakan 'call_user_func'Fungsi VariabelMengirim dengan ReferensiFungsi RekursifUlasan: Ragam Fungsi4Array Multidimensi
Membuat array 2DMengakses Elemen array 2DMengubah Elemen array 2DMelakukan Perulangan dengan loop Bersarangarray Asosiatif 2DRekap: Latihan Kisi Sederhana2Manipulasi array Lanjutan
Menambahkan dengan 'array_push'Menghapus dengan 'array_pop'Menambahkan dengan 'array_unshift'Menghapus dengan 'array_shift'Menggabungkan array berindeksMenggabungkan array asosiatifMengambil bagian dengan 'array_slice'Nilai dengan 'in_array'Kunci dengan 'array_search'Rekap: Latihan playlist3Mengurutkan array
Urutkan array berindeks secara menaikUrutkan array berindeks secara menurunUrutkan assoc array berdasarkan nilaiUrutkan assoc array berdasarkan kunciPengurutan urutan alamiPengurutan khusus dengan 'usort'Rangkuman: Pengurutan papan peringkatLatihan sendiri: Compiler PHP online