GitHub = https://github.com/suboxone-cross/crash/issues/1#issue-550734136
Kod:
<?php
//Başvuru Verilerinin Bulundugu Dizin.
$başvuranlar = array(
['name'=>'Burak Kutay Coşgun', 'Tecrübe'=>5, 'İngilizce Seviyesi'=>5, 'Yaş'=>18],
['name'=>'Ecrin Su', 'Tecrübe'=>4, 'İngilizce Seviyesi'=>2, 'Yaş'=>7],
['name'=>'Furkan Özütürk', 'Tecrübe'=>1, 'İngilizce Seviyesi'=>5, 'Yaş'=>19],
['name'=>'Bekir Balkoca', 'Tecrübe'=>5, 'İngilizce Seviyesi'=>1, 'Yaş'=>17],
['name'=>'Bora Ünver', 'Tecrübe'=>3, 'İngilizce Seviyesi'=>1, 'Yaş'=>18]
);
//QuickSort Algoritması
$sortByCustomFilter = function ($personA, $personB){
if($personA['Tecrübe']==$personB['Tecrübe']){//Rastgele İki Başvuranın Tecrübe Yılı Eşit mi ? diye Soruyoruz..
if ($personA['İngilizce Seviyesi']!=$personB['İngilizce Seviyesi']){/*Başvuran iki elemanın tecrübeleri eşit olduğundan
İngilizce Seviyelerine Bakılıyor Eğer eşit değiller ise alt satıra geçiliyor.. */
return $personA['İngilizce Seviyesi'] < $personB['İngilizce Seviyesi']? 1 : -1;/*Birinci Başvuranın İngilizce Seviyesi İkinci Başvuranın
İnglizce Seviyesinden küçük Olursa Sıralama sayısına 1 ekleniyor şayet büyük olursa -1 azalatılıyor ve sıralamada yükseliyor*/
}else{
if($personA['Yaş'] != $personB['Yaş']){//Burda başvuranların yaşlarına bakılıyor başvuranların yaşları eşit degil ise alt satıra geçiliyor..
return $personA['Yaş'] < $personB['Yaş']? 1 : -1;;/*Birinci Başvuranın Yaşı İkinci Başvuranın
Yaşından küçük Olursa Sıralama sayısına 1 ekleniyor şayet büyük olursa -1 azalatılıyor ve sıralamada yükseliyor*/
}else{
return 0; //Şayet yukardaki koşulların hiç birisi sağlanmazsa algortima sıralama konusunda hiç bir karar vermiyor ve 0 olarak deger veriyor.
}
}
}
return $personA['Tecrübe'] < $personB['Tecrübe']? 1 : -1;//İlk koşul saglanmazsa Başvuran Tecrübeleri kontrol ediliyor..
/*Diger Koşullara bakılmaksızın -> Birinci Başvuranın Tecrübesi İkinci Başvuranın
Tecrübesinden küçük Olursa Sıralama sayısına 1 ekleniyor şayet büyük olursa -1 azalatılıyor ve sıralamada yükseliyor*/
};
//Algoritmanın Dizin Üzerinde Çalıştırılması..
usort($başvuranlar, $sortByCustomFilter);
//Algoritma Sonucunu Görmek İçin..
var_dump($başvuranlar)
?>
Son düzenleme: