//引数:[$arr]2次元配列、[$sort_column]該当列の正順にソート
//返値:ソートされた配列
function sort($arr,$sort_column){
 //ソートのメイン関数へ
 return sort_main($arr,$sort_column,0,count($arr)-1);
}
//ソートメイン
function sort_main(&$tmp,$sort_column,$left,$right){
 $middle=(int)(($left+$right)/2);
 if($left >= $right){
  return;
 }
 $tmp_sub=$tmp[$left];
 $tmp[$left]=$tmp[$middle];
 $tmp[$middle]=$tmp_sub;
 $last=$left;
 for($count=$left+1; $count<=$right; $count++){
  if($tmp[$count][$sort_column]<$tmp[$left][$sort_column]){
   $last++;
   $tmp_sub=$tmp[$last];
   $tmp[$last]=$tmp[$count];
   $tmp[$count]=$tmp_sub;
  }
 }
 $tmp_sub=$tmp[$left];
 $tmp[$left]=$tmp[$last];
 $tmp[$last]=$tmp_sub;
 $this->sort_main(&$tmp,$sort_column,$left,$last-1);
 $this->sort_main(&$tmp,$sort_column,$last+1,$right);
}