PHP排序,是我们锻炼逻辑必不可少的,不会可以QQ联系 2817228206。相互学习。
<?php
class r{
static public $arr = []; // 目标数组
static public $arrlen = 0; // 数组长度
static public $row = []; // 输出数组
static public $ascoo = 1; // sort|resort
function __construct($arr,$t=1){
self::$arr = $arr;
self::$arrlen = count($arr);
self::$ascoo = ($t==1) ? 1:0;
}
// 选出最大数组最大的值
function numSum($arr){
$e = [];
// 选出还剩最后1个的时候直接return
if(count($arr)==1){
return ["key"=>array_keys($arr)[0],"val"=>array_values($arr)[0]];
}
// 选出最大值
for($i = 0; $i < count($arr); $i++){
for($n = 0; $n < count($arr); $n++){
if($arr[$n] > $arr[$i] and $arr[$n]>$e['val']){
$e['val'] = $arr[$n];
$e['key'] = $n;
}
}
}
return $e;
}
function allSort(){
for($i = 0;$i<self::$arrlen;$i++){
// 取出数组的
$res = $this->numSum(self::$arr);
// sort|resort
if(self::$ascoo==1){
array_push(self::$row,$res['val']);
}else{
array_unshift(self::$row,$res['val']);
}
// 删除数组的最大值的(循环一次删除一次)
array_splice(self::$arr,$res['key'],1);
}
return self::$row;
}
}
$row = [7,5,4,12,4,1];
// new r($row,[1/0]). 默认1
$r = new r($row);
$r = $r->allSort();
var_dump($r);
网友评论