// 다중 컬럼을 오름/내림으로 소트
// $dir_sorted = SortArray($dir_contents, "is_dir", DESC, "name", ASC);
function SortArray() {
   $arguments = func_get_args();
   $array = $arguments[0];
   $code = '';
   for ($c = 1; $c < count($arguments); $c += 2) {
      if (in_array($arguments[$c + 1], array("ASC", "DESC"))) {
         $code .= 'if ($a["'.$arguments[$c].'"] != $b["'.$arguments[$c].'"]) {';
         if ($arguments[$c + 1] == "ASC") {
            $code .= 'return ($a["'.$arguments[$c].'"] < $b["'.$arguments[$c].'"] ? -1 : 1); }';
         }
         else {
            $code .= 'return ($a["'.$arguments[$c].'"] < $b["'.$arguments[$c].'"] ? 1 : -1); }';
         }
      }
   }
   $code .= 'return 0;';
   $compare = create_function('$a,$b', $code);
   usort($array, $compare);

   return $array;
}

// 컬럼으로 오름차순 소트
function columnSort($unsorted, $column) {
   $sorted = $unsorted;
   for ($i=0; $i < sizeof($sorted)-1; $i++) {
      for ($j=0; $j<sizeof($sorted)-1-$i; $j++) {
         if ($sorted[$j][$column] > $sorted[$j+1][$column]) {
            $tmp = $sorted[$j];
            $sorted[$j] = $sorted[$j+1];
            $sorted[$j+1] = $tmp;
         }
      }
   }
   return $sorted;
}

블로그 이미지

용병

,