<?php function max_key($arr, $key) { $tmp_key = $key; $max_arr = array(); while($tmp_key--) $max_arr[] = 0; // 补充0这个写法很好 foreach($arr as $num) { $tmp_key = $key; for($i=0; $i<$key; $i++) { if($num>$max_arr[$i]) break; //break后 $i值 不变 } while($tmp_key>$i) { // while同时也是一个判断 $max_arr[$tmp_key] = $max_arr[--$tmp_key]; } // while结束以后必然又 $tmp_key = $i; $max_arr[$tmp_key] = $num; } return $max_arr; } print_r(max_key(array(4,6,9,3,5,7,8,6,7,2,3) , 3));