chain.php
<?php /** * 该类的目标不是写一个排序,而是怎样实现一个链式操作 * 提供了两种排序方法,可以任意使用,体现出链式操作的方便性 */ class chain{ /** * 要排序的数组 */ protected $arr = []; /** * 排序类型,正序和倒序,asc正序,desc倒序 */ protected $type = "asc"; /** * 得到数据源 +----------------------------------------- * @param array $arr 得到要排序的数组 * @return this */ public function data($arr){ $this->arr = $arr; return $this; } /** * 实现排序规则 +----------------------------------------------- * @param int $type 排序规则,0为倒序,1为正序 * @return this */ public function order($type){ $this->type = $type; return $this; } /** * 处理排序功能,冒泡排序法 */ public function bubble(){ for($i = 0,$k = count($this->arr); $i < $k; $i++) { for ($j = $i + 1;$j < $k; $j++) { if($this->type == 'desc'){ if($this->arr[$i] < $this->arr[$j]){ $temp = $this->arr[$j]; $this->arr[$j] = $this->arr[$i]; $this->arr[$i] = $temp; } }else{ if($this->arr[$i] > $this->arr[$j]){ $temp = $this->arr[$j]; $this->arr[$j] = $this->arr[$i]; $this->arr[$i] = $temp; } } } } return $this->arr; } /** * 使用PHP内置函数排序 */ public function sorts(){ if($this->type == 'desc'){ arsort($this->arr); }else{ asort($this->arr); } return $this->arr; } } $chain = new chain(); $result = $chain->data([10,27,3,55,67,125,7,99,6,8])->order("asc")->sorts(); print_r($result);
一片空白 5.8万
父爱如山,不善表达。回想十多年前,总记得父亲有个宽厚的肩膀,小小的自己跨坐在上面,越过人山人海去看更广阔的天空,那个时候期望自己有一双翅膀,能够像鸟儿一样飞得高,看得远。虽然父亲有时会和自己开玩笑,但在做错事的时候会受到严厉的训斥。父亲有双粗糙的大手掌。