为了账号安全,请及时绑定邮箱和手机立即绑定

请帮我解释一下这代码/谢谢

请帮我解释一下这代码/谢谢

白衣非少年 2022-11-18 22:18:56

<?php
function cmp($a, $b) //定义一个CMP函数,
{
if ($a == $b) {  
return 0;
}
return ($a < $b) ? -1 : 1;  
//$a形参小与$b形吗? 如果小于返回-1 这里为什么会是-1? 如果不小于返回1,1和-1是什么意思? 
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp"); //是不是CMP函数的返回值返回到这里? 

foreach ($a as $key => $value) {
echo "$key: $value\n";
}
?> 

查看完整描述

1 回答

?
一只斗牛犬

TA贡献1519条经验 获得超1个赞

这个cmp函数返回值的0、负数、正数是系统规定的,你可以使用-1和1,也可以使用-2和3。usort排续时候,它不比较数组里面元素的大小,而是调用你自己定义的cmp函数进行比较,你的cmp比较函数必须在第一个参数被认为小于、等于或大于第二个参数时,分别返回一个小于、等于或大于零的整数。 

查看完整回答
反对 回复 2022-11-22

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信