Exemple #1
0
 public static function quicksort($arr, $field = 'label', $sort = 'asc')
 {
     if (count($arr) <= 1) {
         return $arr;
     }
     $piv = $arr[0];
     $x = $y = array();
     $len = count($arr);
     $i = 1;
     while ($i < $len) {
         if ($sort == 'asc' && $arr[$i][$field] <= $piv[$field]) {
             $x[] = $arr[$i];
         } else {
             if ($sort == 'desc' && $arr[$i][$field] > $piv[$field]) {
                 $x[] = $arr[$i];
             } else {
                 $y[] = $arr[$i];
             }
         }
         ++$i;
     }
     return array_merge(UtilsHelper::quicksort($x, $field, $sort), array($piv), UtilsHelper::quicksort($y, $field, $sort));
 }