Bu yazıda dizi elemanlarını küçükten büyüğe göre sıralamak için bir kaç tane yöntem göstereceğim. Bu yöntemlerden ilk iki tanesi PHP ile kullanılan yerleşik fonksiyon olacak son örnek ise basit bir sıralama algoritması olacak.
Ayrıca dizi öğelerini büyükten küçüğe göre sıralamak yazısı da ilginizi çekebilir.
Örnek 1: En basit şekilde PHP dizi elemanlarını küçükten büyüğe göre sıralamak için sort() yerleşik fonksiyonunu kullanabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 | <?php $dizi =[10,5,40,50,25,35]; sort($dizi);//küçükten büyüğe sıralar. echo "<pre>"; print_r($dizi); //diziyi ekrana döker. |
Çıktı:
1 2 3 4 5 6 7 8 9 10 11 | Array ( [0] => 5 [1] => 10 [2] => 25 [3] => 35 [4] => 40 [5] => 50 ) |
Örnek 2: usort() yerleşik fonksiyonu ile birlikte belirli koşula göre dizi öğelerini sıralama yapar. usort() karşılaştırma fonksiyonu ile değerleri belirli şarta göre karşılaştırarak sıralamak için kullanılır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $dizi =[10,5,40,50,25,35]; usort($dizi,function($a,$b){ if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; }); echo "<pre>"; print_r($dizi); //diziyi ekrana döker. |
Çıktı:
1 2 3 4 5 6 7 8 9 10 11 | Array ( [0] => 5 [1] => 10 [2] => 25 [3] => 35 [4] => 40 [5] => 50 ) |
Örnek 3: Bu örnekte ise basit bir quicksort algoritaması kullanılmıştır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php $dizi =[10,5,40,50,25,35]; $sirali = quick_sort($dizi); echo "<pre>"; print_r($sirali); //diziyi ekrana döker. function quick_sort($dizi) { $loe = $gt = array(); if(count($dizi) < 2) { return $dizi; } $pivot_key = key($dizi); $pivot = array_shift($dizi); foreach($dizi as $val) { if($val <= $pivot) { $loe[] = $val; }elseif ($val > $pivot) { $gt[] = $val; } } return array_merge(quick_sort($loe),array($pivot_key=>$pivot),quick_sort($gt)); } // sıralama için kaynak kod: // https://www.w3resource.com/php-exercises/searching-and-sorting-algorithm/searching-and-sorting-algorithm-exercise-1.php |
1 Yorum