请教usort,多个数组自定义排序原理
时间:2011-06-07
来源:互联网
求usort,多个数组自定义排序原理:
usort函数,(两个元素搞懂了),多个元素排序方法研究了一天也没搞懂,求详细的,过程。麻烦各位师兄、老师了。
例如:
<?php
function cmp ($a, $b) {
if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
}
$a = array (3, 2, 5, 6, 1);
usort ($a, "cmp");
while (list ($key, $value) = each ($a)) {
echo "$key: $value\n";
}
有这么解释的:
第一次,cmp()的第一个参数,取的是$a[ceil(sizeof($a)/2)-1],也就是中间的一位; cmp()的第二个参数,取的是 $a[1]; 并以第一个参数作为一个准绳跟数组里的其他所有值进行比较,排出一个序列,并确定了第一个参数在数组中的位置..然后以第一个参数作为分界点,分成两段,同理开始排序计算出没个值按从顺序排出来.
这句话如下不明白:
1.并以第一个参数作为一个准绳跟数组里的其他所有值进行比较,排出一个序列 {排出什么序列,这个准绳,的位置}
2并确定了第一个参数在数组中的位置.然后以第一个参数作为分界点,分成两段,同理开始排序计算出没个值按从顺序排出来.{分成两段,准绳先和谁比较呢,序列是什么用的呢。}
请不要粘贴复制。再次感谢各位。
usort函数,(两个元素搞懂了),多个元素排序方法研究了一天也没搞懂,求详细的,过程。麻烦各位师兄、老师了。
例如:
<?php
function cmp ($a, $b) {
if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
}
$a = array (3, 2, 5, 6, 1);
usort ($a, "cmp");
while (list ($key, $value) = each ($a)) {
echo "$key: $value\n";
}
有这么解释的:
第一次,cmp()的第一个参数,取的是$a[ceil(sizeof($a)/2)-1],也就是中间的一位; cmp()的第二个参数,取的是 $a[1]; 并以第一个参数作为一个准绳跟数组里的其他所有值进行比较,排出一个序列,并确定了第一个参数在数组中的位置..然后以第一个参数作为分界点,分成两段,同理开始排序计算出没个值按从顺序排出来.
这句话如下不明白:
1.并以第一个参数作为一个准绳跟数组里的其他所有值进行比较,排出一个序列 {排出什么序列,这个准绳,的位置}
2并确定了第一个参数在数组中的位置.然后以第一个参数作为分界点,分成两段,同理开始排序计算出没个值按从顺序排出来.{分成两段,准绳先和谁比较呢,序列是什么用的呢。}
请不要粘贴复制。再次感谢各位。
作者: yanhuidbd_e 发布时间: 2011-06-07
偶也不会,过来学习。
作者: newdomer 发布时间: 2011-06-07
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28