很明显你并没有看明白uksort这个函数的用法。他所调用的用户函数的返回值必须是-1,0,1
解决方案 »
- 使用preg_replace方法出现的问题。
- PHP如何生成JS,请高手帮助
- 请问 用PHP从PostgreSql数据库中取出数据并导入到Excel 怎么办?
- PHP 输出session 验证码与图片不同步,图片总是快一步,求解!
- PHP如何从C++后台获得监控视频流并且显示在网页上
- 帮我看一个函数
- 请问如何将连接后面带的PHPSESSID去掉。linux9.0 + php4.2 + apache2.0 ,在线等!
- 请问,如何提升网站在google或baidu中的搜索排名?
- 我只在自己的电脑上学习PHP(学习它的语法),只装PHP的编译器可以吗?装好以后应该怎样使用它来写PHP的源程序,和编译它。
- 问一个很菜的问题
- php报表,找了两天一点头绪都没有
- 上海的SOHO一族请进来~~~
if($a==$b)return 0;//返回0?//如果相等就返回0,这好像不用再怎么解释
return($a>$b)?-1:1;//更搞不懂了!郁闷!//如果a大于b,则返回-1,否则返回1
}
$a=array(4=>"four",2=>"two",3=>"three");
uksort($a,mycompare);//uksort -- 使用用户自定义的比较函数对数组中的键名进行排序
经过uksort处理,数组自然就变成了,你打印出来的结果。
这个手册上写的很清楚:
/**************************************************bool uksort ( array &array, callback cmp_function )本函数将使用用户提供的比较函数对数组中的键名进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。 cmp_function 函数应接受两个参数,该参数将被 array 中的一对键名填充。比较函数在第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。 如果成功则返回 TRUE,失败则返回 FALSE。 **************************************************/
while(list($key,$value)=each($a))
{
echo "$key:$value/n"
}
0 不做任何动作
1 将$a移到$b的后面
-1 将$a移到$b前面
这样,你就可以自己控制排序的结果了