實現數組排序的函數
今天在網上看到如何實現排序的函數,所以也寫下。討論下看有沒更好的方法。。
<?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"));
?> ;