php中usort自定义排序如何使用

一、总结

一句话总结:多写一个规则函数,而这个函数的写法和普通函数一样,调用的时候规则函数用函数名的字符串。

1、用户自定义规则函数有哪三个?

usort — 使用用户自定义的比较函数对数组中的值进行排序

uksort — 使用用户自定义的比较函数对数组中的键名进行排序

uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

2、规则函数怎么写?

和普通函数的写法一样,和c++中规则函数的写法也一样

3、usort()如何调用规则函数?

函数名的字符串

uasort($arr,'compare_arr');

二、php中usort自定义排序

usort — 使用用户自定义的比较函数对数组中的值进行排序

uksort — 使用用户自定义的比较函数对数组中的键名进行排序

uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

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')
); function compare_arr($x,$y){
if($x['b']<$y['b']){
return -1;
}else if($x['b']>$y['b']){
return 1;
}else{
return 0;
}
} uasort($arr,'compare_arr'); foreach($arr as $a){
echo $a['a'].'=>'.$a['b'].'<br/>';
}

手册里的自定义排序类:

class multiSort
{
var $key; //key in your array //排序函数 参数依次是 数组 待排列索引 排序类型
function run ($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;
} //正序
function mycompare($x, $y)
{
if ( $x[$this->key] == $y[$this->key] )
return 0;
else if ( $x[$this->key] < $y[$this->key] )
return -1;
else
return 1;
} //逆序
function myreverse_compare($x, $y)
{
if ( $x[$this->key] == $y[$this->key] )
return 0;
else if ( $x[$this->key] > $y[$this->key] )
return -1;
else
return 1;
}
}
 

最新文章

  1. persistence.xml文件的妙处
  2. ThinkPhP 分页
  3. Ubuntu学习——第一篇
  4. SQL日期格式化应用大全
  5. poj1236 强连通缩点
  6. WPF在XAML中Binding使用StringFormat属性
  7. C# 使用 GetOleDbSchemaTable 检索架构信息(表、列、主键等)
  8. PHP time() 函数
  9. 最完美的xslt数值函数与字符串函数(转)
  10. will VS be going to
  11. Lexicographical Numbers
  12. CCControlSlider和CCControlStepper用法
  13. 只有有lua编译能力不足200K代码吧?NO! Python 有可能。
  14. HDU 4630、BOJ 某题
  15. ANT 配置和安装 1
  16. UE4 小笔记
  17. 设置mysql数据库为只读
  18. Self-Host
  19. 如何使用eclipse运行简单的java程序
  20. linux系统进入单用户模式

热门文章

  1. Filebeat之input和output(包含Elasticsearch Output 、Logstash Output、 Redis Output、 File Output和 Console Output)
  2. less中混合
  3. POJ 2427 Smith&#39;s Problem Pell方程
  4. 洛谷 P2374 搬运工
  5. 文档翻译第003篇:Process Monitor帮助文档(Part 3,附Process Monitor的简单演示)
  6. Rdis-主从复制
  7. 泛型T和Object 区别?
  8. 洛谷 P2095 营养膳食
  9. Java Web学习总结(16)——JSP的九个内置对象
  10. 芯片SA58672(功放芯片)