麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
发个函数,对2唯数组进行排序,相当于sql的ORDER BY,gfqqqqpe进来
悬赏分:20 - 2007年08月16日

用 array_multisort 好象不方便,该函数只排序你输入的字段,于是就写了这个函数
[php]
<?
function array_usort(&$array){
$args = func_get_args();
for($i=1,$cmd='';$i $order = ($args[$i] === SORT_DESC)?'':'-1*';
$cmd .= "if(\$num = @strcmp(\$a['$args[$i]'],\$b['$args[$i]']))return $order\$num;else ";
if($order != ''){
$i++;
}
}
usort($array,create_function('$a,$b',"$cmd return 0;"));

}
[/php]
主要是针对2唯数组的,经常我们都接触到对2唯数组的排序,如学生资料,保存到一个数组中,有时候需要按照名字,排序,有时候需要按照学号排序,有时候需要按照成绩排序,有时候需要先按照成绩,后按照学号排序,等等,这个函数可以简单的解决这些问题
函数的第一个参数是,要排序的数组,后面的是要排序的字段或者排序方式,排序方式默认为升序

1,如果根据学生名称排序 升序
array_usort($array,'name') 或者 array_usort($array,'name',SORT_ASC);
2,根据学生名称排序,降序
array_usort($array,'name',SORT_DESC)
3,根据先根据学生成绩排序(降序),再根据姓名排序(升序)
array_usort($array,'socre',SORT_DESC,'name')
就可以了.
值得说明的一点,函数中只处理了一个常量 SORT_DESC (整形4)
如果你要排序的字段中有 4 做索引的,请加上引号

提问者:ej99   08-16 17:05
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
71 + 59 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM