猿问

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

<?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";
}
?> 

白衣非少年
浏览 138回答 1
1回答

一只斗牛犬

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