- function arraysort($data, $order = 'asc') {
- //asc升序 desc降序
- $temp = array ();
- $count = count ( $data );
- if ($count <= 0)
- return false; //傳入的資料不正確
- if ($order == 'asc') {
- for($i = 0; $i < $count; $i ++) {
- for($j = $count - 1; $j > $i; $j --) {
- if ($data [$j] < $data [$j - 1]) {
- //交換兩個資料的位置
- $temp = $data [$j];
- $data [$j] = $data [$j - 1];
- $data [$j - 1] = $temp;
- }
- }
- }
- } else {
- for($i = 0; $i < $count; $i ++) {
- for($j = $count - 1; $j > $i; $j --) {
- if ($data [$j] > $data [$j - 1]) {
- $temp = $data [$j];
- $data [$j] = $data [$j - 1];
- $data [$j - 1] = $temp;
- }
- }
- }
- }
- return $data;
- }
- $data = array (7, 5, 3, 8, 9, 1, 5, 3, 1, 24, 3, 87, 0, 33, 1, 12, 34, 54, 66, 32 );
- var_dump ( arraysort ( $data ) ); //升序
- echo ('
');
- var_dump ( arraysort ( $data ,'desc') );//降序
複製代碼2、插入排序法
- function arraysort3($data, $order = 'asc') {
- //目前只做升序排列
- $count = count ( $data );
- for($i = 1; $i < $count; $i ++) {
- $temp = $data [$i];
- $j = $i - 1;
- while ( $data [$j] > $temp ) {
- $data [$j + 1] = $data [$j];
- $data [$j] = $temp;
- $j --;//為什麼要遞減:從高位逐位判斷
- }
- }
- return $data;
- }
- $data = array (7, 5, 3, 8, 9, 1, 5, 3, 1, 24, 3, 87, 0, 33, 1, 12, 34, 54, 66, 32 );
- var_dump ( arraysort3 ( $data ) ); //升序
- ?>
複製代碼以上代碼介紹了php 數組排序的二個例子,分別用了冒泡法與插入法,希望對大家有所協助。指令碼學堂,專心為您每一天。 >>> 更多內容,請查看 php數組排序方法大全 <<< |