您当前的位置: 首页 > 网站编程 > PHP教程 > PHP一维数组排序方法

PHP一维数组排序方法

作者:不详 来源:网络 发布时间: 2014-07-30 22:11 点击:
不管在现实生活中还是程序世界里,顺序总是很重要真不敢想象一个没有顺序的世界会什么样子!PHP数组也不例外。PHP提供了四组针对PHP数组进行排序的函数,前三种都是针对一维数组的,我们先说这三种,第四种对多维数组的排序在下一篇文章中说,那个有点复杂。 第一组 :s

PHP一维数组排序方法

  不管在现实生活中还是程序世界里,顺序总是很重要——真不敢想象一个没有顺序的世界会什么样子!PHP数组也不例外。PHP提供了四组针对PHP数组进行排序的函数,前三种都是针对一维数组的,我们先说这三种,第四种对多维数组的排序在下一篇文章中说,那个有点复杂。

  第一组 :sort 和 rsort ,按照PHP数组键值的顺序asc和逆序desc进行排序,同时破坏原来数组的索引关系——其实是删除索引之后重新建立从0开始的数字索引。看一下例程:

  

  

  

  

  

  

  


  <?php

  $a = array("a"=>1,2);

  sort($a);

  var_dump($a);

  rsort($a);

  var_dump($a);

  ?>

  


  看一下第一个输出结果,第一个输出:

  array(2) {

  [0]=>

  int(1)

  [1]=>

  int(2)

  }

  第二个输出:

  array(2) {

  [0]=>

  int(5)

  [1]=>

  int(4)

  }

  发现没有我们原来定义的索引a哪里去了?哪里去了?可以肯定的说是被他们无情的删除了,你要是对原来的索引关系并不在意的话,可以使用他们!

  第二组函数:asort 和 arsort ,这两个函数就比较厉害一点了,只要他们可以保留数组原有的索引关系,把上例的sort 和 rsort 分别用这两个函数替换一下,看运行结果:

  array(2) {

  ["a"]=>

  int(1)

  [0]=>

  int(2)

  }

  array(2) {

  [0]=>

  int(2)

  ["a"]=>

  int(1)

  }

  这个一看就明白的,不用说了吧!

  第三组PHP数组排序函数:krsort 和 ksort 这两个不同于以上两组,这两函数是对键名进行排序的,大家可以把上例的函数替换成这两个,看看具体运行结果,这里也不说了,不然这个文章写的就太长了,怕有些兄弟没有耐心看到本文的重点,虽然重点就在下边!

  通过自定义函数对PHP数组进行排序,有三个函数分别是:

  uasort 通过自定义函数对PHP数组的键值进行排序,并且保留原来的索引关系。

  uksort 通过自定义函数对PHP数组的键名进行排序,并且保留原来的索引关系。

  usort通过自定义函数对PHP数组的键值进行排序,并且删除原来的索引关系,从零开始建立新的索引。

  这个地方当然需要一个例子:

  

  

  

  

  

  

  


  <!--p

  //首先顶一个函数,这个函数需要接受两个参数,并且返回值是一定的

  //第一个参数等于第二个参数的时候返回0,小于的时候返回-1,大于返回1

  function cmp($a,$b){

  $a+=1;

  $b+=3;//改变这些值之后进行比较

  if($a==$b) return 0;

  return ($a&lt;$b)?-1:1;

  }

  $a =array(1,4,3,5);

  uasort($a,'cmp');

  var_dump($a);

  -->

  


  输出结果:

  array(4) {

  [0]=>

  int(1)

  [3]=>

  int(5)

  [1]=>

  int(4)

  [2]=>

  int(3)

  }

  ,呵呵……是不是比不排序还乱呢?我们这里只是演示了使用的方法而已,具体你用到的时候自己搞吧!你要是不对这些数值进行操作之后再比较,例如我们这里:

  $a+=1;

  $b+=3;//改变这些值之后进行比较

  那么你还不如直接用sort呢是不是?

  其他两个跟这个差不多就不说了,随后战地会对PHP针对多维数组进行排序做一些实验,然后把结果和过程告诉大家,稍等啊!
分享到:
本文"PHP一维数组排序方法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4