Menu
Coddy logo textTech

İç İçe Döngülerle Yineleme

Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 30 / 68.

2B dizilerle çalışırken genellikle her bir öğeyi işlemeniz gerekir; bu da her satırı ve ardından o satırın içindeki her sütunu ziyaret etmeyi gerektirir. İç içe döngüler bu noktada vazgeçilmez hâle gelir. Tüm ızgara yapısında sistematik olarak gezinmek için bir döngüyü diğerinin içinde kullanırsınız.

Dış döngü, 2B dizinin her satırında yinelenirken iç döngü, geçerli satırdaki her öğeyi işler. Bunun bir foreach döngüsüyle nasıl çalıştığı aşağıda açıklanmıştır:

<?php
$schedule = [
    ["Meeting", "Lunch", "Presentation"],
    ["Training", "Review", "Planning"],
    ["Workshop", "Break", "Demo"]
];

foreach ($schedule as $day) {
    foreach ($day as $appointment) {
        echo $appointment . "\n";
    }
}
?>

İndisler üzerinde daha fazla denetime ihtiyaç duyduğunda geleneksel for döngülerini de kullanabilirsin. Bu yaklaşım hem satır hem de sütun konumlarına erişmeni sağlar:

<?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";
    }
}
?>

Bu iç içe döngü deseni, ister verileri görüntülüyor, ister hesaplamalar yapıyor, ister tüm ızgara yapısında belirli değerleri arıyor olun, 2B dizileri eksiksiz bir şekilde işlemek için temeldir.

challenge icon

Görev

Kolay

Bir sınıfın oturma düzenini JSON biçiminde temsil eden 2B bir dizi olan tek bir girdi alacaksınız. Her iç dizi bir koltuk sırasını temsil eder ve her öğe bir öğrencinin adını veya boş koltuklar için boş bir dize içerir. Girdiyi okuyun, JSON dizesini 2B bir diziye dönüştürün, tüm oturma düzeninde gezinmek için iç içe döngüler kullanın ve her öğrencinin adını konumuyla birlikte şu biçimde yazdırın: Row X, Seat Y: Name

Boş koltukları (boş dizeleri) atlayın ve yalnızca dolu koltuklar için bilgi yazdırın. Satırlar ve koltuklar 1'den başlayarak numaralandırılmalıdır (0'dan değil).

Girdi biçimi: Oturma düzenini temsil eden bir JSON dizisi içeren tek satır (örnek: [["Alice","Bob",""],["","Charlie","Diana"],["Eve","","Frank"]])

Beklenen çıktı: Her dolu koltuğun, Row X, Seat Y: Name biçiminde ayrı bir satıra yazdırılması; burada X satır numarası, Y ise koltuk numarasıdır (her ikisi de 1'den başlar)

Kendin dene

<?php
// JSON girdisini oku
$input = trim(fgets(STDIN));

// JSON dizesini 2D diziye dönüştür
$seating = (array)json_decode($input, true);

// TODO: Kodunuzu aşağıya yazın
// Satırlar ve koltuklar arasında gezinmek için iç içe döngüler kullanın
// Boş koltukları atlamayı ve satırları/koltukları 1'den başlayarak numaralandırmayı unutmayın


?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online PHP derleyicisi