2 Boyutlu Dizi Elemanlarını Değiştirme
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 29 / 68.
2D bir dizideki öğelere erişebildiğinizde, bir sonraki mantıklı adım bunların değerlerini nasıl değiştireceğinizi öğrenmektir. 2D bir dizideki öğeleri değiştirmek, onlara erişmekle aynı çift dizinleme sözdizimini kullanır, ancak yeni bir değer atamak için bir atama operatörü ile birlikte kullanılır.
İşte 2 boyutlu bir dizideki belirli bir öğeyi nasıl değiştireceğiniz:
<?php
$gameBoard = [
["", "", ""],
["", "", ""],
["", "", ""]
];
// Orta hücreyi 'X' olarak değiştir
$gameBoard[1][1] = "X";
// Sol üst köşeyi 'O' olarak değiştir
$gameBoard[0][0] = "O";
?>$gameBoard[1][1] = "X" söz dizimi, 1. satır, 1. sütunu (3x3'lük bir ızgaranın merkezi) hedefler ve bu konuma "X" değerini atar. Bu, orijinal diziyi doğrudan değiştirerek orada daha önce bulunan değerin yerine geçer.
Bu değiştirme tekniği; oyun durumlarını güncellemek, tablolardaki verileri değiştirmek veya ızgara benzeri veri yapınızdaki belirli konumları değiştirmeniz gereken herhangi bir senaryo için gereklidir. Tam konumları belirleme ve güncelleme yeteneği, 2D dizileri satırlar ve sütunlar halinde düzenlenmiş dinamik, değiştirilebilir bilgileri temsil etmek için mükemmel kılar.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Görev
KolayDört girdi alacaksınız: JSON formatında bir oturma planını temsil eden 2 boyutlu bir dizi, bir satır indeksi, bir sütun indeksi ve yeni bir yolcu adı. Dört girdiyi de okuyun, JSON dizesini 2 boyutlu bir diziye dönüştürün, belirtilen satır ve sütundaki öğeyi yeni yolcu adını atayarak değiştirin ve güncellenmiş 2 boyutlu diziyi print_r() kullanarak yazdırın.
2 boyutlu dizi, her bir öğenin bir yolcu adını veya boş koltuklar için boş bir dizeyi içerdiği bir oturma planını temsil eder.
Giriş formatı:
- Birinci satır: Oturma planını temsil eden bir JSON dizisi (örnek:
[["Alice","Bob",""],["","Charlie","Diana"],["","",""]]) - İkinci satır: Satır indeksi (tam sayı)
- Üçüncü satır: Sütun indeksi (tam sayı)
- Dördüncü satır: Yeni yolcu adı (dize)
Beklenen çıktı: print_r() kullanılarak görüntülenen değiştirilmiş 2 boyutlu dizi
Kopya kağıdı
2B bir dizideki öğeleri değiştirmek için, bir atama operatörü ile çift dizinleme sözdizimini kullanın:
$array[row][column] = newValue;Bir oyun tahtasını değiştirme örneği:
<?php
$gameBoard = [
["", "", ""],
["", "", ""],
["", "", ""]
];
// Orta hücreyi 'X' olarak değiştir
$gameBoard[1][1] = "X";
// Sol üst köşeyi 'O' olarak değiştir
$gameBoard[0][0] = "O";
?>Bu, belirtilen konumdaki değeri değiştirerek orijinal diziyi doğrudan değiştirir. Değiştirme tekniği, satırlar ve sütunlar halinde düzenlenmiş dinamik verileri güncellemek için gereklidir.
Kendin dene
<?php
// Girdileri oku
$json_input = trim(fgets(STDIN));
$row_index = intval(fgets(STDIN));
$col_index = intval(fgets(STDIN));
$new_passenger = trim(fgets(STDIN));
// JSON'u 2 boyutlu diziye dönüştür
$seating_chart = (array)json_decode($json_input, true);
// TODO: Oturma planını değiştirmek için kodunuzu aşağıya yazın
// Değiştirilmiş diziyi yazdır
print_r($seating_chart);
?>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
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu Sıralama