请问函数func5里面的
if($v1===$v2) return 0;
if($v1>$v2) return 1;
if($v1<$v2) return -1;
是什么意思?
为什么$v1===v2是返回0?而不是返回1,array_uintersect是一个返回数组元素值的交集函数function dump($arr){
echo "<pre>";
print_r($arr);
}
$array1=array("a1"=>"a","b"=>"b","c"=>"c");
$array2=array("a"=>"a1","b"=>"b","c"=>"c");
$array3=array_uintersect($array1,$array2,"func5");
function func5($v1,$v2){
if($v1===$v2) return 0;
if($v1>$v2) return 1;
if($v1<$v2) return -1;
}
dump($array3);
if($v1===$v2) return 0;
if($v1>$v2) return 1;
if($v1<$v2) return -1;
是什么意思?
为什么$v1===v2是返回0?而不是返回1,array_uintersect是一个返回数组元素值的交集函数function dump($arr){
echo "<pre>";
print_r($arr);
}
$array1=array("a1"=>"a","b"=>"b","c"=>"c");
$array2=array("a"=>"a1","b"=>"b","c"=>"c");
$array3=array_uintersect($array1,$array2,"func5");
function func5($v1,$v2){
if($v1===$v2) return 0;
if($v1>$v2) return 1;
if($v1<$v2) return -1;
}
dump($array3);
例如 $v1 = 1 $v2 = 1 都是数值类型 就 返回真.
$v1 = '1' $v2 = 1 $v1 是字符类型 $v2 是数值类型 就返回假.
if($v1>$v2) return 1;
if($v1<$v2) return -1;
是什么意思?
--------------------------------和c语言中字符串比较函数一个规则。
如果两个值相等就返回0.
a大于b,就返回1
否则返回-1这样设计也是很合理的。
func5函数就是比较函数。返回的是两个值的大小关系。
此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。
function func5($v1,$v2){
if($v1===$v2) return 0;//因此,等于的话返回0
if($v1>$v2) return 1;//返回大于0的整数
if($v1<$v2) return -1;//返回小于0的整数
}
你也可以将func5()写成
function func5($v1,$v2){
if($v1===$v2) return 0;
if($v1>$v2) return 2;
if($v1<$v2) return -3;
}
function dump($arr){
echo "<pre>";
print_r($arr);
}
$array1=array("a1"=>"a","b"=>"b","c"=>"c");
$array2=array("a"=>"a1","b"=>"b","c"=>"c");
$array3=array_uintersect($array1,$array2,"func5");
function func5($v1,$v2){
if($v1===$v2) return 0;
if($v1>$v2) return 2;
if($v1<$v2) return -3;
}
dump($array3);