有一组数,29、30、40、16、57、69、42、54、46、31写程序排列这组数(要求:第一个是最大的,第二个是最小的,第三个是剩下中最大的,第四个是剩下最小的,四五个是剩下中最大的,第六个是剩下中最小的,一次向下排列。)

/*有一组数,29、30、40、16、57、69、42、54、46、31写程序排列这组数(要求:第一个是最大的,第二个是最小的,第三个是剩下中最大的,第四个是剩下最小的,四五个是剩下中最大的,第六个是剩下中最小的,一次向下排列。)
* @param $arr 输入的数组
* @return array
*/
方法一:
function paixu($arr){
$count = count($arr); //数组的个数
$newarr = array();
for($i=0;$i<$count;$i++){
if ($i%2==1){
$temp = $newarr[] = min($arr);
}else {
$temp = $newarr[] = max($arr);
}
foreach($arr as $k=>$v) {
if($arr[$k]==$temp){
unset($arr[$k]);
}
}
}
return $newarr;
}

方法二:
$a = array(29,30,40,16,57,69,42,54,46,31);
$b =array(29,30,40,16,57,69,42,54,46,31);
rsort($a);        //对数组逆向排序
sort($b); //对数组顺向排序
$num = sizeof($a); //计算数组中的单元数目或对象中的属性个数
for($i=0; $i<=$num-1; $i++) {
if($i%2==0) {
$x[$i] = $a[$i];//把最大的放在第一位
} else {
$x[$i] = $b[$i];//把最小的放在第二位上
}
}
print_r($x);
原文地址:https://www.cnblogs.com/swallowli66/p/10620353.html