Menu
Coddy logo textTech

İlişkisel Dizileri Değere Göre Sıralama

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

İlişkili dizilerle çalışırken, anahtar-değer ilişkilerini koruyarak onları genellikle değerlerine göre sıralamanız gerekir. PHP bu amaç için iki özel fonksiyon sunar: artan düzen için asort() ve azalan düzen için arsort().

İşte asort() işlevinin değerlere göre artan düzende sıralama yapmak için nasıl çalıştığı:

<?php
$students = [
    "Alice" => 85,
    "Bob" => 92,
    "Charlie" => 78,
    "Diana" => 96
];

asort($students);
print_r($students);
// Outputs: Array ( [Charlie] => 78 [Alice] => 85 [Bob] => 92 [Diana] => 96 )
?>

Notların artık en düşükten en yükseğe doğru sıralandığına, ancak her öğrencinin adının notuyla doğru şekilde eşleşmeye devam ettiğine dikkat edin. Bu, asort() fonksiyonunun normal sort() fonksiyonuna göre temel avantajıdır; anahtarlar ve değerler arasındaki ilişkiyi korur.

Azalan sıralama için, arsort() benzer şekilde çalışır ancak değerleri en yüksekten en düşüğe doğru düzenler:

<?php
arsort($students);
print_r($students);
// Çıktı: Array ( [Diana] => 96 [Bob] => 92 [Alice] => 85 [Charlie] => 78 )
?>

Her iki fonksiyon da, indeksli dizi karşılıkları gibi, orijinal diziyi doğrudan değiştirir. Bu, onları öğrenci notları, ürün fiyatları gibi verileri düzenlemek veya anahtar-değer çiftlerini bozmadan değere göre sıralama yapmanız gereken her durum için mükemmel kılar.

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

Bir girdi alacaksınız: JSON formatında çalışan isimleri ve maaşlarından oluşan bir ilişkisel dizi (associative array). Girdiyi okuyun, JSON dizesini bir diziye dönüştürün, çalışanları maaşlarına göre azalan düzende (en yüksekten en düşüğe) sıralamak için arsort() kullanın ve sıralanmış diziyi print_r() kullanarak yazdırın.

Girdi formatı: Anahtar olarak çalışan isimlerini ve değer olarak maaşları içeren bir JSON nesnesi barındıran tek bir satır (örnek: {"John":45000,"Sarah":52000,"Mike":38000,"Lisa":61000})

Beklenen çıktı: Maaş değerlerine göre azalan düzende sıralanmış, print_r() kullanılarak görüntülenen ilişkisel dizi

Kopya kağıdı

İlişkisel dizileri (associative arrays), anahtar-değer ilişkilerini koruyarak değerlere göre artan düzende sıralamak için asort() işlevini kullanın:

<?php
$students = [
    "Alice" => 85,
    "Bob" => 92,
    "Charlie" => 78,
    "Diana" => 96
];

asort($students);
print_r($students);
// Çıktı: Array ( [Charlie] => 78 [Alice] => 85 [Bob] => 92 [Diana] => 96 )
?>

İlişkisel dizileri değerlere göre azalan düzende sıralamak için arsort() işlevini kullanın:

<?php
arsort($students);
print_r($students);
// Çıktı: Array ( [Diana] => 96 [Bob] => 92 [Alice] => 85 [Charlie] => 78 )
?>

Her iki işlev de normal sort() işlevinden farklı olarak, orijinal diziyi doğrudan değiştirir ve anahtarlar ile değerler arasındaki ilişkiyi korur.

Kendin dene

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

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

// YAPILACAK: Diziyi maaşa göre azalan düzende sıralamak için kodunuzu aşağıya yazın


// Sıralanmış diziyi yazdır
print_r($employees);
?>
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