Menu
Coddy logo textTech

İlişkisel Dizileri Birleştirme

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

array_merge() indeksli dizilerle sorunsuz bir şekilde çalışırken, ilişkisel dizilerle çalışıldığında davranışı önemli ölçüde değişir. Temel fark, birleştirilen dizilerdeki yinelenen dize anahtarlarını nasıl ele aldığıdır.

Birleştirilen ilişkisel dizilerde, her iki dizi de aynı dize anahtarını içeriyorsa, sonraki dizideki değer önceki dizideki değerin üzerine yazılır:

<?php
$defaults = ["theme" => "light", "language" => "english", "notifications" => true];
$userSettings = ["theme" => "dark", "notifications" => false];
$finalConfig = array_merge($defaults, $userSettings);
print_r($finalConfig);
// Outputs: Array ( [theme] => dark [language] => english [notifications] => false )
?>

"theme" değerinin "light" değerinden "dark" değerine, "notifications" değerinin true değerinden false değerine nasıl değiştiğine, "language" değerinin ise üzerine yazılmadığı için "english" olarak kaldığına dikkat edin. Bu davranış, varsayılan değerlerin kullanıcı tercihleri tarafından geçersiz kılınmasını istediğiniz yapılandırma sistemleri için array_merge() işlevini mükemmel kılar.

Bağımsız değişkenlerin sırası önemlidir: işlev çağrısında daha sonra listelenen dizilerdeki değerler, daha önce listelenenlere göre öncelik kazanır. Bu üzerine yazma davranışı yalnızca dize anahtarları için geçerlidir; sayısal anahtarlar, indeksli dizilerde olduğu gibi her zaman sıralı olarak yeniden indekslenir.

challenge icon

Görev

Kolay

İki girdi alacaksınız: her ikisi de JSON biçiminde olan bir varsayılan yapılandırma dizisi ve bir kullanıcı tercihleri dizisi. Her iki girdiyi okuyun, her JSON dizesini ilişkisel bir diziye dönüştürün, bunları birleştirmek için array_merge() kullanın (kullanıcı tercihleri varsayılanların üzerine yazsın) ve birleştirilmiş yapılandırmayı print_r() kullanarak yazdırın.

Girdi biçimi: İki satır — her satır, ilişkisel bir diziyi temsil eden bir JSON nesnesi içerir (örnek: {"theme":"light","language":"english"})

Beklenen çıktı: Kullanıcı tercihlerinin varsayılan değerlerin üzerine yazdığı, print_r() kullanılarak görüntülenen birleştirilmiş yapılandırma dizisi

Kendin dene

<?php
// İki JSON girdisini oku
$defaultConfig = fgets(STDIN);
$userPreferences = fgets(STDIN);

// JSON dizelerini ilişkisel dizilere dönüştür
$defaultArray = (array)json_decode($defaultConfig, true);
$userArray = (array)json_decode($userPreferences, true);

// TODO: Dizileri birleştirmek için kodunuzu aşağıya yazın


// Birleştirilmiş yapılandırmayı çıktıla
print_r($mergedConfig);
?>
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