切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
usort函数。[复制链接]
发表于 2013-4-9 21:12:34 | 显示全部楼层 |!read_mode!
<?php 
$lamp=array("Linux", "Apache", "MySQL","PHP");

usort($lamp, "sortbylen");

function sortbylen($one, $two){
	if(strlen($one)==strlen($two))
		return 0;
	else
		return (strlen($one)<strlen($two))?1:-1;
}

print_r($lamp);
echo '<br>';




?>


输出结果Array(    [0] => Apache    [1] => Linux    [2] => MySQL    [3] => PHP)
sortbylen($one, $two)这里只定义了2个函数的比较。
我没明白   数组里的4个是  怎样  完成它的比较的。  


发表于 2013-4-10 11:37:56 | 显示全部楼层
<?php 
$lamp=array("Linux", "Apache", "MySQL","PHP","12345678","123456789");

usort($lamp, "sortbylen");//usort使用用户自定义的比较函数对数组中的值进行排序

function sortbylen($one, $two){
	if(strlen($one)==strlen($two))
		return 0;
	else
		return (strlen($one)<strlen($two))?-1:1;
}
echo "<pre>";
print_r($lamp);
echo '</pre>';

//第二种排序方法
sort($lamp);
echo "<pre>";
print_r($lamp);
echo "</pre>";

/***
http://cn2.php.net/usort
cmp_function
在第一个参数小于,等于或大于第二个参数时,该比较函数必须返回一个小于,等于或大于0的整数
if($one == $two){
	return 0;
}elseif($one < $two){
	return -1;
}elseif($one > $two){
	return 1;
}

(strlen($one)<strlen($two))?-1:1;  //是一种if...else的简写(三元表达式)详情参考[url]http://blog.sina.com.cn/s/blog_40006eef0100owwi.html[/url]


php中的usort源代码是c写的如果有兴趣的话可以下载php的核心源代码来分析下
http://cn2.php.net/distributions/php-5.4.13.tar.bz2

建议先会用再研究源代码
***/


?>

操千曲而后晓声,观千剑而后识器。

代码区

GMT+8, 2019-11-19 21:49

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部