php中usort自定义排序如何使用
2024-08-31 19:10:13
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;
}
}
最新文章
- persistence.xml文件的妙处
- ThinkPhP 分页
- Ubuntu学习——第一篇
- SQL日期格式化应用大全
- poj1236 强连通缩点
- WPF在XAML中Binding使用StringFormat属性
- C# 使用 GetOleDbSchemaTable 检索架构信息(表、列、主键等)
- PHP time() 函数
- 最完美的xslt数值函数与字符串函数(转)
- will VS be going to
- Lexicographical Numbers
- CCControlSlider和CCControlStepper用法
- 只有有lua编译能力不足200K代码吧?NO! Python 有可能。
- HDU 4630、BOJ 某题
- ANT 配置和安装 1
- UE4 小笔记
- 设置mysql数据库为只读
- Self-Host
- 如何使用eclipse运行简单的java程序
- linux系统进入单用户模式
热门文章
- Filebeat之input和output(包含Elasticsearch Output 、Logstash Output、 Redis Output、 File Output和 Console Output)
- less中混合
- POJ 2427 Smith&#39;s Problem Pell方程
- 洛谷 P2374 搬运工
- 文档翻译第003篇:Process Monitor帮助文档(Part 3,附Process Monitor的简单演示)
- Rdis-主从复制
- 泛型T和Object 区别?
- 洛谷 P2095 营养膳食
- Java Web学习总结(16)——JSP的九个内置对象
- 芯片SA58672(功放芯片)