PHP实现的自定义数组排序函数与排序类示例
本文实例讲述了PHP实现的自定义数组排序函数与排序类。分享给大家供大家参考,具体如下:
/* *二维数组自定义排序函数 *uasort($arr,function_name) * **/ $arr=array( array('a'=>1,'b'=>'c'), array('a'=>4,'b'=>'a'), array('a'=>5,'b'=>'g'), array('a'=>7,'b'=>'f'), array('a'=>6,'b'=>'e') ); functioncompare_arr($x,$y){ if($x['b']<$y['b']){ return-1; }elseif($x['b']>$y['b']){ return1; }else{ return0; } } uasort($arr,'compare_arr'); foreach($arras$a){ echo$a['a'].'=>'.$a['b'].'<br/>'; }
手册里的自定义排序类:
classmultiSort { var$key;//keyinyourarray //排序函数参数依次是数组待排列索引排序类型 functionrun($myarray,$key_to_sort,$type_of_sort='') { $this->key=$key_to_sort; if($type_of_sort=='desc') uasort($myarray,array($this,'myreverse_compare')); else uasort($myarray,array($this,'mycompare')); return$myarray; } //正序 functionmycompare($x,$y) { if($x[$this->key]==$y[$this->key]) return0; elseif($x[$this->key]<$y[$this->key]) return-1; else return1; } //逆序 functionmyreverse_compare($x,$y) { if($x[$this->key]==$y[$this->key]) return0; elseif($x[$this->key]>$y[$this->key]) return-1; else return1; } }
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《php字符串(string)用法总结》、《PHP针对XML文件操作技巧总结》、《PHP错误与异常处理方法总结》、《PHP运算与运算符用法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。