陣列氣泡排序 二維陣列元素排序
阿新 • • 發佈:2018-12-30
/**************氣泡排序**/ $intarr = array(3,2,7,1,55,44); function maopaoSort($str){ for($i=0;$i<count($str);$i++){ for($k=1;$k<count($str)-$i;$k++){ if($str[$k-1]>$str[$k]){ $tmp = $str[$k-1]; $str[$k-1] = $str[$k]; $str[$k] = $tmp; } } } return $str; } $res = maopaoSort($intarr); print_r($res);//列印 /** * 對二維陣列元素進行排序 * */ $books = array( array('name'=>'php','price'=>100), array('name'=>'java','price'=>99), array('name'=>'mysql','price'=>200), array('name'=>'photoshop','price'=>20) ); //方法一 :氣泡排序 function booksSort($books){ for($i=0;$i<count($books);$i++){ for($j=1;$j<count($books)-$i;$j++){ if($books[$j-1]['price']>$books[$j]['price']){ $tmp_name = $books[$j-1]['name']; $tmp_price = $books[$j-1]['price']; $books[$j-1]['name'] = $books[$j]['name']; $books[$j-1]['price'] = $books[$j]['price']; $books[$j]['name'] = $tmp_name; $books[$j]['price'] = $tmp_price; } } } return $books; } print_r(booksSort($books));//列印 //方法二: function booksSortTwo($arr){ $tmp_arr = array(); foreach($arr as $k=>$v){ $tmp_arr[$k] = $v['price']; } asort($tmp_arr); foreach($tmp_arr as $kt=>$vt){ $tmp_arr2[$kt] = $arr[$kt]; $resarr[] = $tmp_arr2[$kt]; } return $resarr; } print_r(booksSortTwo($books));//列印