php 排序2
php内置函数 array_multisort()写的一个排序十分强大,十分简单; 排序顺序旗标 : SORT_ASC - 排序成上升的顺序 SORT_DESC - 排序成下降的顺序 排序型态旗标 : SORT_REGULAR - 正常的比较项目 SORT_NUMERIC - 以数字比较项目 SORT_STRING - 看作是字符串来比较项目 <?php $arr=array(32,33,44,66,234,158,278,429,95,876); array_multisort ($arr, SORT_ASC, SORT_NUMERIC); //这个函数真强 echo "<br>正序:<br>"; foreach($arr as $key=>$val){ echo $val."<br>"; } echo "<br>倒序:<br>"; $arr2=array_reverse($arr); foreach($arr2 as $key2=>$val2){ echo $val2."<br>"; } ?> <?php //我测试的好用的:插入排序 $arr=array(6,3,5,6,77,22); foreach($arr as $key=>$val){ echo "$key=>$val<br>"; } insert_sort($arr); function insert_sort($arr){ $count = count($arr); echo "数组:".$count."<br>"; for($i=1; $i<$count; $i++){ $tmp = $arr[$i]; $j = $i - 1; while($arr[$j] > $tmp){ $arr[$j+1] = $arr[$j]; $arr[$j] = $tmp; $j--; } } foreach($arr as $key=>$val){ echo "$val "; } echo "<br>"; $arr2 = array_reverse($arr); foreach($arr2 as $key=>$val){ echo "$val "; } } ?> ----------------------------------------------------------- 以下是别人写的: <? //插入排序(一维数组) function insert_sort($arr){ $count = count($arr); for($i=1; $i<$count; $i++){ $tmp = $arr[$i]; $j = $i - 1; while($arr[$j] > $tmp){ $arr[$j+1] = $arr[$j]; $arr[$j] = $tmp; $j--; } } return $arr; } //选择排序(一维数组) function select_sort($arr){ $count = count($arr); for($i=0; $i<$count; $i++){ $k = $i; for($j=$i+1; $j<$count; $j++){ if ($arr[$k] > $arr[$j]) $k = $j; if ($k != $i){ $tmp = $arr[$i]; $arr[$i] = $arr[$k]; $arr[$k] = $tmp; } } } return $arr; }