氣泡排序(優化版)和快速排序
阿新 • • 發佈:2019-01-04
$arr = array(
array('id' => 0, 'name' => '123833'),
array('id' => 0, 'name' => 'aaa'),
array('id' => 0, 'name' => 'albabaababa'),
array('id' => 0, 'name' => '12356'),
array('id' => 0, 'name' => '123abc')
);
//自定義排序usort對陣列排序
function cmp($a,$b){ //$a,$b為陣列的值兩兩進行比較
$a = strlen($a['name']);
$b = strlen($b['name']);
if($a == $b) return 0;
return $a<$b ? -1 : 1; //返回-1則交換順序
}
usort($arr,"cmp"); //自定義排序,此處函式cmp需要加"",否則報錯,不能寫成cmp().
//氣泡排序法
for($i=0; $i<count($arr); $i++){
for($j=0; $j<count($arr)-1; $j++){ //內層迴圈個數少一個
if(strlen($arr[$j]) > strlen($arr[$j+1 ])){
$tmp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$tmp;
}
}
}
echo "<pre>";
print_r($arr);
echo "</pre>";