+ -
当前位置:首页 → 问答吧 → 请教usort,多个数组自定义排序原理

请教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并确定了第一个参数在数组中的位置.然后以第一个参数作为分界点,分成两段,同理开始排序计算出没个值按从顺序排出来.{分成两段,准绳先和谁比较呢,序列是什么用的呢。}


请不要粘贴复制。再次感谢各位。


作者: yanhuidbd_e   发布时间: 2011-06-07

偶也不会,过来学习。

作者: newdomer   发布时间: 2011-06-07