Menu
Coddy logo textTech

İlişkisel Dizileri Anahtara Göre Sıralama

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

Değerlere göre sıralama yararlı olsa da, bazen ilişkisel dizileri bunun yerine anahtarlarına göre düzenlemeniz gerekir. PHP, artan anahtar sırası için ksort() ve azalan anahtar sırası için krsort() fonksiyonlarını sağlar; her ikisi de kritik anahtar-değer ilişkilerini korur.

İşte ksort() fonksiyonunun bir diziyi anahtarlarına göre alfabetik olarak nasıl sıraladığı:

<?php
$settings = [
    "theme" => "dark",
    "language" => "english", 
    "notifications" => "enabled",
    "auto_save" => "on"
];

ksort($settings);
print_r($settings);
// Çıktı: Array ( [auto_save] => on [language] => english [notifications] => enabled [theme] => dark )
?>

Anahtarların artık A'dan Z'ye alfabetik sıraya dizildiğini, her bir ayar adının ise değeriyle düzgün bir şekilde eşleşmeye devam ettiğini fark edin. Bu, özellikle yapılandırma seçeneklerini veya menü öğelerini öngörülebilir ve düzenli bir şekilde görüntülemek istediğinizde yararlıdır.

Ters alfabetik sıra için, krsort() benzer şekilde çalışır ancak anahtarları Z'den A'ya doğru sıralar. Her iki fonksiyon da, diğer PHP sıralama fonksiyonları gibi orijinal diziyi doğrudan değiştirir; bu da onları, anahtar sırasının değer sırasından daha önemli olduğu verileri düzenlemek için verimli kılar.

challenge icon

Görev

Kolay

Bir girdi alacaksınız: JSON biçiminde departman adlarından ve bütçe tahsislerinden oluşan bir ilişkisel dizi. Girdiyi okuyun, JSON dizesini bir diziye dönüştürün, anahtarlarına göre departmanları alfabetik olarak artan düzende sıralamak için ksort() kullanın ve sıralanmış diziyi print_r() kullanarak yazdırın.

Girdi biçimi: Anahtarları departman adları ve değerleri bütçe tutarları olan bir JSON nesnesi içeren tek satır (örnek: {"Marketing":75000,"IT":120000,"HR":65000,"Finance":95000})

Beklenen çıktı: Departman adlarına (anahtarlara) göre alfabetik olarak artan düzende sıralanmış ilişkisel dizinin print_r() kullanılarak görüntülenmesi

Kendin dene

<?php
// Girdiyi oku
$input = fgets(STDIN);

// JSON'u diziye dönüştür
$departments = (array)json_decode($input, true);

// YAPILACAK: Diziyi anahtarlara göre sıralamak için kodunuzu aşağıya yazın


// Sonucu yazdır
print_r($departments);
?>
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