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şkili dizilerle çalışırken davranışı önemli ölçüde değişir. Temel fark, birleştirilen diziler arasındaki yinelenen dize anahtarlarını nasıl ele aldığıdır.

İlişkisel dizileri birleştirirken, 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);
// Çıktı: Array ( [theme] => dark [language] => english [notifications] => false )
?>

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

Argümanların sırası önemlidir; fonksiyon ç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, tıpkı indeksli dizilerde olduğu gibi her zaman sıralı olarak yeniden indekslenir.

quiz iconKendini test et

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

quiz iconKendini test et

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

quiz iconKendini test et

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

challenge icon

Görev

Kolay

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

Giriş formatı: İki satır - her satır bir ilişkisel 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.

Kopya kağıdı

İlişkisel dizileri array_merge() ile birleştirirken, yinelenen dize anahtarlarının üzerine sonraki dizilerdeki değerler yazılır:

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

Temel davranışlar:

  • Aynı ada sahip dize anahtarları: sonraki dizi değerleri öncekilerin üzerine yazar
  • Sıralama önemlidir: daha sonra listelenen diziler önceliklidir
  • Sayısal anahtarlar her zaman ardışık olarak yeniden dizine eklenir
  • Varsayılan değerlere ve kullanıcı geçersiz kılmalarına sahip yapılandırma sistemleri için mükemmeldir

Kendin dene

<?php
// İki JSON girişini 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);

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


// Birleştirilmiş yapılandırmayı çıktı olarak ver
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