實現數組排序的函數

今天在網上看到如何實現排序的函數,所以也寫下。討論下看有沒更好的方法。。

[复制到剪切板]
CODE:
<?php
/*
  實現功能:冒泡實現數組排序
*/
//實現冒泡排序$action ,asc為順序,desc為倒序
function  MySort(&$array_sort,$action)
{
  
$array_index=array_keys($array_sort);
  
$acount=count($array_index);
  for (
$i=0;$i<$acount;$i++)
  {
   for(
$j=$i+1;$j<$acount;$j++)
   {
    switch (
$action)
    {
     case 
"desc":
      if (
$array_sort[$array_index[$i]]<$array_sort[$array_index[$j]])
       
chagevalues(&$array_index[$i],&$array_index[$j]);
      break;
     case 
"asc":
      if (
$array_sort[$array_index[$i]]>$array_sort[$array_index[$j]])
       
chagevalues(&$array_index[$i],&$array_index[$j]);
      break;
    }
   }
  }
  
  for(
$i=0;$i<$acount;$i++){
   
$asort["$array_index[$i]"]=$array_sort[$array_index[$i]];
  }
  return 
$asort;
}
//交換兩個數
function chagevalues(&$a,&$b)
{
  
$temp $a;
  
$a  $b;
  
$b  $temp;
}

//定義待排序的數組
$array_sort = array('c'=>20'b'=>10'a'=>150'd'=>23);
;
//或
//$array_sort = array(20, 10,150, 23);
;

print_r ($array_sort);
echo 
"\n\r<br>";
print_r (MySort(&$array_sort,"asc"));
?> ;