<<= Önceki Sayfa
PHP Ana Sayfa
Sonraki Sayfa =>>

Bir diziyi sizin belirlediginiz bir fonksiyona gore siralamak :
Bir diziyi kendi belirlediginiz kurala gore siralamak istiyorsunuz.Buna sebep PHP'nin hazir siralama fonksiyonlarinin yetersizligi olabilir.


Cozum : usort () fonksiyonu, kullanici tanimli bir fonksiyona gore bir diziyi siralayabilir.


Ornek :



<?php
function borcu_sirala ($a,$b)
{

if ($a[1]==$b[1]) return 0;
return ($b[1] > $a[1]) ? 1 : -1;

}


/*
Diyelim ki her gun poker oyunu oynadiginiz arkadaslarinizin size olan borcunu bir dizide
sakliyorsunuz ve bu diziyi en buyuk borctan en kucuge dogru siralamak istiyorsunuz.
*/


$poker_borclari = array(array("Oktay",31),array("Tayfun",12),array("Kris",18));


usort ($poker_borclari,'borcu_sirala');


foreach ($poker_borclari as $borclar) {


print $borclar[0]." isimli kisinin bana olan borcu :".$borclar[1];
print "<br>";

}
?>


Aciklama : usort () fonksiyonu argument olarak bir dizi ve kullanici tanimli bir fonksiyonun ismini alir.Ilk argumentte aldigi diziyi,ikinci argumentte yer alan fonksiyona gore siralar.Bu kullanici tanimli fonksiyon mutlaka "-1,0 veya 1" sonuclarindan birini dondurmelidir.


PHP'nin yapisal siralama fonksiyonlari "dizilerin dizilerini" siralayamazlar.Bu ozellik PHP4'e henuz eklenmemistir.


Ancak yukaridaki sekilde yapilandirilmis sizileri "usort ()" ile kendi yazdiginiz fonksiyonlarla siralayabilirsiniz.


Ornek Dosyalar


http://www.turk-php.com/ornekler/usort_ornegi.php


http://www.turk-php.com/ornekler/usort_ornegi.phps



Kaynak : ISBN 0-672-31924-1


Serkan Hadi Ceylani
serkan@turk-php.com



<<= Önceki Sayfa
PHP Ana Sayfa
Sonraki Sayfa =>>