Sözdizimi:
usort() fonksiyonunun sözdizimi aşağıda verilmiştir.
Boolean usort(dizi $dizi, geri arama())Bu işlevin iki argümanı vardır. Her iki argüman da zorunludur. İlk argüman sıralanacak diziyi alır. callback() işlevi, diziyi sıralamak için dizinin değerlerini karşılaştırır ve sayısal bir değer döndürür. callback() işlevinin argümanları eşitse, işlev 0 döndürür. callback() işlevinin ilk argümanı ikinci argümandan büyükse, 1 değerini döndürür. callback() işlevinin ilk argümanı ikinci argümandan küçükse, -1 döndürür. usort() işlevi başarılı sıralama için true, başarısız sıralama için false döndürür. Bu işlevin bazı kullanımları bu öğreticinin sonraki bölümünde gösterilmiştir.
Örnek-1: Bir dizi tarih değeri sıralama
Aşağıdaki örnek, usort() işlevi kullanılarak bir tarih değerleri dizisinin nasıl düzgün şekilde sıralanabileceğini gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun. $tarih_dizisi beş tarih değerleriyle tanımlanır. sıralama_tarihi() işlevi sıralamak için geri arama işlevi olarak bildirildi $tarih_dizisi. usort() işlevi çağrılmadan önce dizi değerleri yazdırılır. usort() işlevi dizi ve geri çağırma işleviyle birlikte çağrıldığında, strtotime() işlevini kullanarak iki tarih değerini zaman damgası değerlerine dönüştürür. İki zaman damgası değeri eşitse, işlev 0 döndürür. İlk zaman damgası değeri ikinci zaman damgası değerinden büyükse, işlev 1 değerini döndürür. İlk zaman damgası değeri ikinci zaman damgası değerinden düşükse, işlev -1 değerini döndürür. usort() işlevi, geri arama işlevini birden çok kez çağırır $tarih_dizisi düzgün sıralanmış. Ardından, sıralanan dizi kullanılarak yazdırılacaktır her biri için döngü.
//geri arama fonksiyonunu tanımlaişlev sıralama_tarihi($a, $b)
dönüş strtotime($a) - strtotime($b);
//Tarih değerleri dizisini bildir
$date_array = dizi('25-03-2020', '14-03-2020', '28-02-2015', '09-12-2017', '20-09-2015');
// Sıralamadan önce dizi değerlerini yazdır
Eko "
Tarih dizisinin değerleri:
";foreach($date_array as $değer)
yankı $değer."
";
// usort() kullanarak diziyi sıralayın
usort($tarih_dizisi, "sıralama_tarihi");
// Sıralamadan sonra diziyi yazdır
Eko "
Tarih dizisini sıraladıktan sonraki çıktı:
";foreach($date_array as $değer)
yankı $değer."
";
?>
Çıktı:
Komut dosyasını sunucudan çalıştırdıktan sonra aşağıdaki çıktı görünecektir.
Örnek-2: İlişkili bir diziyi sıralama
Aşağıdaki örnek, usort() işlevi kullanılarak bir ilişkisel dizinin nasıl sıralanabileceğini gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun. sıralama_adları() işlev, diziyi dizi değerlerine göre sıralamak için bir geri çağırma işlevi olarak bildirildi. Üçlü operatör şurada kullanılır: sıralama_adları() ilişkisel dizinin değerlerini karşılaştırma işlevi. İki değer eşitse, geri arama işlevi 0 döndürür. İlk bağımsız değişken değeri ikinci bağımsız değişken değerinden büyükse, geri arama işlevi 1 değerini döndürür. İlk argüman değeri ikinci argüman değerinden küçükse, geri çağırma işlevi -1 değerini döndürür. usort(), geri arama işlevini kullanarak diziyi sıralar ve sıralanan dizi, kullanılarak yazdırılır her biri için döngü.
// İlişkisel diziyi sıralamak için işlevi tanımlayınfonksiyon sıralama_isimleri($a, $b)
$a döndür == $b ? 0 : $a > $b ? 1: -1;
//İlişkisel diziyi tanımlayın
$persons = array("1001"=>"Meera Ali", "1002"=>"Kabir Hossain", "1003"=>"Nurjahan Akter");
// diziyi sırala
usort($kişi, "sort_names");
//Sıralanan diziyi yazdır
Eko "Sıralanan dizinin değerleri:
";
foreach($kişi olarak $kişi)
yankı $kişi. "
";
?>
Çıktı:
Komut dosyasını sunucudan çalıştırdıktan sonra aşağıdaki çıktı görünecektir.
Örnek-3: İki boyutlu bir diziyi sıralama
Aşağıdaki örnek, usort() işlevi kullanılarak iki boyutlu bir dizinin nasıl sıralanabileceğini gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun. sıralama_dizi() işlev, diziyi dizi değerlerine göre sıralamak için bir geri çağırma işlevi olarak bildirildi. strcmp() işlevi, dizinin değerlerini karşılaştırmak için geri çağırma işlevinde kullanılır. İki değer eşitse, strcmp() işlevi 0 döndürür. İlk bağımsız değişken değeri ikinci bağımsız değişken değerinden büyükse, strcmp() işlevi 1 değerini döndürür. İlk bağımsız değişken değeri ikinci bağımsız değişken değerinden küçükse, strcmp() işlevi -1 değerini döndürür. usort(), geri çağırma işlevini kullanarak diziyi sıralar ve sıralanan dizinin yapısı, print_r() fonksiyon.
//İki boyutlu diziyi sıralamak için işlev tanımlayınişlev sıralama_dizisi($a, $b)
return strcmp($a['a'], $b['a']);
//İki boyutlu diziyi bildir
$hayvanlar = array(array ("a" => "Aslan"), array ("a" => "Geyik"), dizi ("a" => "Tavşan"),array ("a" => "Maymun" "));
// diziyi sırala
usort($hayvanlar, "sort_array");
//Sıralanan diziyi yazdır
Eko "usort()'tan sonraki dizi değerleri:
";";
print_r($hayvanlar);
Eko "
?>
Çıktı:
Komut dosyasını sunucudan çalıştırdıktan sonra aşağıdaki çıktı görünecektir.
Sonuç:
usort(), PHP'nin normal sıralama işlevlerini doğru şekilde sıralayamayan belirli veri türlerini sıralamak için kullanışlı bir işlevdir. usort() işlevinin geri çağırma işlevi, sıralamak için gereken değer türlerine göre tanımlanır. Bu öğretici, okuyucuların usort() işlevini nasıl kullanacaklarını bilmelerine ve gereksinime göre komut dosyalarına uygulamalarına yardımcı olacaktır.