永发信息网

PHP usort函数相关问题

答案:2  悬赏:10  手机版
解决时间 2021-02-11 17:51
<!DOCTYPE html>
<html>
<body>

<?php
function my_sort($a,$b)
{
if ($a==$b) return 0;
return ($a<$b)?-1:1;
}

$a=array(4,2,8,6);
usort($a,"my_sort");

$arrlength=count($a);
for($x=0;$x<$arrlength;$x++)
{
echo $a[$x];
echo "<br>";
}

?>

</body>
</html>
======================================================
一,这里的0 -1 1 和数组的排序有什么关系吗?假如把自定义函数比较的返回值0 -1 1都对挑掉,那排序又会怎么变,这有什么规则吗?这个函数,难道只能根据0 -1 1 来 只能进行升降序来排列吗?

二,自定义函数传入的两个值,是传入数组的两个值吗?还是传入一个值和他的键?如果是两个值的话,那一个数组里面那么多值,又是如何先后进行比较的呢?比如:9,8,6,3,1 按升序排列,是传入9和8,然后8放到9前面(8 9 6 3 1),再传入9 6(8 6 9 3 1)再传入9 3(86391)再传入91(86319)再传入86(68319)再传入83(63819)…………是一直这样重复比较几十几百次这样计算的(如果元素多的话,那工作量也太大的惊人了吧)?

百度了几个小时,都搞不懂这个函数是怎样工作的,求解,拜托了~
最佳答案
unsort 里面一个是数组,一个是你要对中国数组进行排序的规则
既然是排序那就是比较大小了
0就是表示相等,1 是表示大, -1 表示小,
你改变了0 -1 1 的返回规则,那返回的东西就会发生改变,

在自定义函数中进行比较的就是数组里的两个值,进行比较的话肯定是有复杂度的,但是不一定是n方的复杂度,具体是怎么样的我不知道,但应该是nlog(n) 的复杂度,虽然是这样但是时间也不会消耗很多,计算机的计算大概是每秒 10 的 8 次方,还是很快的
全部回答
usort(array,sorttype), 第一个参数规定要排序的数组。 第二个参数用户自定义的函数。 函数必须设计为返回 -1, 0, 或 1,并应该接受两个供比较的参数,同时以类似下面这样的方式来工作: •如果 a = b, 返回 0 •如果 a > b, 返回 1 •如果 a < b, 返回 -1
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
任县砂锅在哪里啊,我有事要去这个地方
你对家长助教活动有何宝贵意见
20的机油和40的机油,哪种对发动机更好呢
结束三国时期分裂局面实现短暂统一的王朝是A.
CPI 在计量分析时用同比还是环比数据?计量模
葫芦岛长山寺港口有限公司地址在哪,我要去那
注射肌松药后引起低血压的主要原因是A.血钾升
我的电脑4兆网速耍起地下城会一下一下的卡呢
灵宝市三门峡家家超市地址是什么,有没有知道
什么决定了按劳分配
章鱼输入法英文26键怎么调成大写
连锁家电在什么地方啊,我要过去处理事情
墨玉县质量技术监督局地址在什么地方,想过去
能写写你认为很诗意很好听的网名吗
豪爵摩托车的继电器多少钱
推荐资讯
汽车dvd一开机就死机怎么回事
动画片中的狼与《狼图腾》中的狼有什么区别?
【年数总和法计提折旧】由年限平均法变为年数
宇丰农药种子经销处我想知道这个在什么地方
前面买了个1000片的拼图,送了一袋胶水,不知
下列不属于真菌的是A. 木耳B. 蘑菇C. 灵芝D.
电脑里的8G和8GB有什么区别
可不可以到当地OPPO专卖店去换原装屏幕
以彪旅馆地址在哪,我要去那里办事
韩妃美颜生活馆地址有知道的么?有点事想过去
【威武近义词】威武不凡的近义词再加一个例:
中石化张桥加油站(郑集乡)地址有知道的么?有
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?