分享一个php数组排序的例子,介绍了和php,有关的知识、技巧、经验,和一些php源码等。

  1. <?php
  2. class='pingjiaF' frameborder='0' src='http://www.jbxue.com/pingjia.php?id=335100' scrolling='no'>
  3. 对数组排序
  4. usort() 函数使用用户自定义的函数对数组排序。
  5. */
  6. function cmp($a, $b) //用户自定义回调函数
  7. {
  8. if($a==$b) //如果两个参数相等
  9. {
  10. return 0; //返回0
  11. }
  12. return($a>$b)?-1:1; //如果第1个参数大于第2个返回1,否则-1
  13. }
  14. $a=array(3,2,5,6,1); //定义一个数组
  15. usort ($a,"cmp"); //使用自定义函数对数组排序
  16. foreach($a as $key=>$value) //循环输出排序后的键值对
  17. {
  18. echo "$key:$valuen";
  19. }
  20. /*
  21. 注释:如果两个元素比较结果相同,则它们在排序后的数组中的顺序未经定义。到 php 4.0.6 之前,用户自定义函数将保留这些元素的原有顺序。但是由于在 4.1.0 中引进了新的排序算法,结果将不是这样了,因为对此没有一个有效的解决方案。
  22. */
  23. //对数组键名排序 uksort(array,sorttype)
  24. function cmp($a, $b) //用户自定义回调函数
  25. {
  26. if($a==$b) //如果两个参数相等
  27. {
  28. return 0; //返回0
  29. }
  30. return($a>$b)?-1:1; //如果第1个参数大于第2个返回1,否则-1
  31. }
  32. $a=array(4=>"four",3 =>"three",20 =>"twenty",10=>"ten"); //定义一个数组
  33. uksort ($a,"cmp"); //使用自定义函数对数组键名排序
  34. foreach($a as $key=>$value) //循环输出排序后的键值对
  35. { // www.jbxue.com
  36. echo "$key:$valuen";
  37. }/*
  38. uksort() 函数使用用户自定义的比较函数按照键名对数组排序,并保持索引关系。
  39. 如果成功则返回 true,否则返回 false。
  40. 如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。
  41. 自定义函数应接受两个参数,该参数将被数组中的一对键名填充。比较函数在第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。
  42. */
  43. /*
  44. sort() 函数按升序对给定数组的值排序。
  45. 注释:本函数为数组中的单元赋予新的键名。原有的键名将被删除。
  46. 如果成功则返回 true,否则返回 false。
  47. */
  48. $fruits=array("lemon","orange","banana","apple"); //定义一个数组
  49. sort($fruits); //对数组进行排序
  50. foreach($fruits as $key=>$val) //循环输出数组排序后的键值对
  51. {
  52. echo "$key=$valn"; //输出键值对
  53. }

php对数组排序的例子的更多相关文章

  1. php对数组排序代码

    php对数组排序,介绍了和php,有关的知识.技巧.经验,和一些php源码等. 对数组排序 usort() 函数使用用户自定义的函数对数组排序. */ function cmp($a, $b) //用 ...

  2. PHP中数组排序实例学习

    先介绍下php中用于数组排序的函数: 排序方法                           升序                             降序                 ...

  3. js原型链闭包作用域链-Tom

    1.原型相当于Java.C++里面的父类,由封装公有属性及方法而产生,子类可以继承. 原型继承实现(函数的原型属性指向原型函数一个实例对象,函数的原型的构造函数指向函数本身) 1)eg:原型链 fun ...

  4. 代码分享:php对二维数组进行排序

    发布:net/PHP编程  编辑:thebaby   2013-06-28 13:12:54  [大 中 小] 转自:http://www.jbxue.com/article/9991.html本文介 ...

  5. js中的数组Array定义与sort方法使用示例

    Array的定义及sort方法使用示例 Array数组相当于java中的ArrayList  定义方法:  1:使用new Array(5  )创建数组 var ary = new Array(5): ...

  6. Java开发笔记(二十三)数组工具Arrays

    数组作为一种组合形式的数据类型,必然要求提供一些处理数组的简便办法,包括数组比较.数组复制.数组排序等等.为此Java专门设计了Arrays工具,该工具包含了几个常用方法,方便程序员对数组进行加工操作 ...

  7. JavaScript内部原理实践——真的懂JavaScript吗?(转)

    通过翻译了Dmitry A.Soshnikov的关于ECMAScript-262-3 JavaScript内部原理的文章, 从理论角度对JavaScript中部分特性的内部工作机制有了一定的了解. 但 ...

  8. Swift语言精要-闭包(Closure)

    闭包(Closure)这个概念如果没学过Swift的人应该也不会陌生. 学过Javascript的朋友应该知道,在Javascript中我们经常会讨论闭包,很多前端工程师的面试题也会问到什么是闭包. ...

  9. 闭包(Closures)

    本文转自:http://goddyzhao.tumblr.com/post/11311499651/closures 翻译自:http://dmitrysoshnikov.com/ 概要 本文将介绍一 ...

随机推荐

  1. 山东省第四届ACM省赛

    排名:http://acm.sdut.edu.cn/sd2012/2013.htm 解题报告:http://www.tuicool.com/articles/FnEZJb A.Rescue The P ...

  2. Android--创建进度框ProgressDialog

    1.布局文件progress_dialog_activity.xml <?xml version="1.0" encoding="utf-8"?> ...

  3. IntelliJ IDEA显示行号方法

    File->Settings->Editor->General->Appearence->Show line numbers

  4. ASP.NET MVC开发微信(三)

  5. Functions类,一个Javascript的函数加法类,将两个函数加起来,顺序执行

    以下是类的代码: var Functions = { oFunctions: null, add: function (oFunc, oNewFunc) { var oNew = function ( ...

  6. VS error retrieving information from user datastore

    搭建好VS2005+PB6.0的开发环境后,新建MFC智能设备应用程序工程出错,错误信息如下: error retrieving information from user datastore 很奇怪 ...

  7. Hello world!让 grub2 引导自己的操作系统 Xos 内核

    按照惯例,Xos 的第一步是在屏幕上打印 Hello world!第一步是神奇的一步,如果读者对 PC 不了解,将很难得到头绪. PC 开机后,CS 和 IP 被初始化为 CS=0xFFFFh,IP= ...

  8. 好文EF

    http://www.cnblogs.com/zhaopei/p/5721789.html#autoid-0-0 http://www.cnblogs.com/zhaopei/p/5746414.ht ...

  9. 【PL/SQL练习】函数

    1.必须返回一个值2.只能在表达式调用 SQL> create or replace function fun1 return number is v_sum_sal emp.sal%type; ...

  10. Eclipse 工作目录被破坏,导致Eclipse 打不开

    由于之前一直使用的的是 visual studio 的开发工具,对 java 的 Eclipse 工具比较陌生,在使用 eclipse 的过程中误删了工作目录的部分文件,导致在在下次启动 eclips ...