<?php
function sortByLen( $one, $two ) {
if ( strlen( $one ) == strlen( $two ) )
return 0;
else
return ( strlen( $one ) > strlen( $two ) ) ? 1 : -1;
}
$lamp = array( "Linux", "Apache", "MySQL", "PHP" );
usort( $lamp, "sortByLen" );
print_r( $lamp );
?>
排序后输出:Array ( [0] => PHP [1] => MySQL [2] => Linux [3] => Apache )
这里参数传入变量函数里的顺序是怎样的?
01
02
03
这样两个两个传进去比较的
还是
01
12
23
这种类似的方式传进去的
请问传递的依据又是什么呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
你定义了一个比较函数,比较字符串的长度,并且作为参数传给排序函数。
排序函数根据此比较两个变量的大小,自然排序的结果是根据长度排序。
php因为只有3个字符,排最前,而apache有六个字符,排最后。
你说的排序函数内是怎么调用这个比较函数的,以及调用多少次,这个取决于排序算法的内部实现。