php对数组排序代码分享

代码如下:

<?php 
class='pingjiaF' frameborder='0' src='http://www.jb51.net' scrolling='no'> 
对数组排序 
usort() 函数使用用户自定义的函数对数组排序。 
*/

function cmp($a, $b) //用户自定义回调函数 

if($a==$b) //如果两个参数相等 

return 0; //返回0 

return($a>$b)?-1:1; //如果第1个参数大于第2个返回1,否则-1 

$a=array(3,2,5,6,1); //定义一个数组 
usort ($a,"cmp"); //使用自定义函数对数组排序 
foreach($a as $key=>$value) //循环输出排序后的键值对 

echo "$key:$valuen"; 

/*
注释:如果两个元素比较结果相同,则它们在排序后的数组中的顺序未经定义。到 php 4.0.6 之前,用户自定义函数将保留这些元素的原有顺序。但是由于在 4.1.0 中引进了新的排序算法,结果将不是这样了,因为对此没有一个有效的解决方案。

*/

//对数组键名排序 uksort(array,sorttype) 
function cmp($a, $b) //用户自定义回调函数 

if($a==$b) //如果两个参数相等 

return 0; //返回0 

return($a>$b)?-1:1; //如果第1个参数大于第2个返回1,否则-1 

$a=array(4=>"four",3 =>"three",20 =>"twenty",10=>"ten"); //定义一个数组 
uksort ($a,"cmp"); //使用自定义函数对数组键名排序 
foreach($a as $key=>$value) //循环输出排序后的键值对 
{ // www.jb51.net 
echo "$key:$valuen"; 
}/*
uksort() 函数使用用户自定义的比较函数按照键名对数组排序,并保持索引关系。

如果成功则返回 true,否则返回 false。

如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。

自定义函数应接受两个参数,该参数将被数组中的一对键名填充。比较函数在第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。

*/

/*
sort() 函数按升序对给定数组的值排序。

注释:本函数为数组中的单元赋予新的键名。原有的键名将被删除。

如果成功则返回 true,否则返回 false。

*/

$fruits=array("lemon","orange","banana","apple"); //定义一个数组 
sort($fruits); //对数组进行排序 
foreach($fruits as $key=>$val) //循环输出数组排序后的键值对 

echo "$key=$valn"; //输出键值对 
}

(0)

相关推荐

  • 不使用php api函数实现数组的交换排序示例

    复制代码 代码如下: $arr = array(900 , 20 , 16 , 50 , -2 , 10 , 3);$min = $max = 0; for ($j=0;$j<count($arr);$j++){ for($i=0;$i<count($arr)-1;$i++){  if($arr[$i] > $arr[$i+1]){   $min = $arr[$i+1];   $arr[$i+1] = $arr[$i];   $arr[$i] = $min;  } } echo &qu

  • PHP中数组的分组排序实例

    PHP的数组,数组中的内容大致如下: 复制代码 代码如下: $list = array(    array(2,3,5),    array(2,5,24),    array(3,8,6),    array(3,2,10),    array(4,7,20),    array(4,1,15),    array(6,4,10),    array(7,9,20),    ); 为了方便表达,我把3列数字分别称为,ABC三列 需求:默认以A列排序为主,如果A列相同则以C列倒序排列相同的元素.

  • php数组中包含中文的排序方法

    php数组中文排序,文件格式一般用utf8,直接用asort排序不行.若是gbk和gb2312可以.这跟编码有关.gbk和gb2312本身的编码就是用拼音排序的. 复制代码 代码如下: function utf8_array_asort(&$array) {if(!isset($array) || !is_array($array)) {  return false;}foreach($array as $k=>$v) {  $array[$k] = iconv('UTF-8', 'GB23

  • php冒泡排序、快速排序、快速查找、二维数组去重实例分享

    一.冒泡排序 复制代码 代码如下: //冒泡排序function bubble_sort($array){    $count=count($array);    if($count <= 0){        return false;    }    for($i=0;$i<$count;$i++){        for($j=0;$j<$count-$i-1;$j++){            if( $array[$j] > $array[$j+1] ){        

  • php对数组排序的简单实例

    复制代码 代码如下: <?php  class='pingjiaF' frameborder='0' src='http://www.jb51.net' scrolling='no'>  对数组排序  usort() 函数使用用户自定义的函数对数组排序.  */ function cmp($a, $b) //用户自定义回调函数  {  if($a==$b) //如果两个参数相等  {  return 0; //返回0  }  return($a>$b)?-1:1; //如果第1个参数大于

  • php一维二维数组键排序方法实例总结

    本文实例总结了php一维二维数组键排序方法.分享给大家供大家参考.具体方法如下: 在php中数组排序一直是一个老生常谈的问题,下面我们来集中讲一下关于在php中一维数组与二维数组排序的实现程序,相信对大家有一定的参考借鉴价值. 功能:对数组进行重新排序. 说明:冒泡排序 (一维数组)(二维数组某个健排序) 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止 设想被排序的数组R[1..N] 垂直竖立,将每个数据元素看作有重量的气泡,从下往上扫描数组,凡

  • php插入排序法实现数组排序实例

    本文实例讲述了php插入排序法实现数组排序的方法.分享给大家供大家参考.具体分析如下: 插入排序法的基本思路:同样以案例来说明,还是以$arr = array(2,6,3,9),由大到小排序. 实现原理:假设(并不实际创建)有一个有序数组$arr = array(2),用$arr[1]=6来与它进行比较,如果6>2,由把$arr[0]后移到$arr[1]位置,而6插入到$arr[0]位置.接着,$arr[2]=3与$arr[1]=2比较,3>2,则$arr[1]=2继续后移到$arr[2]位置

  • PHP中shuffle数组值随便排序函数用法

    本文实例讲述了shuffle数组值随便排序函数的用法,分享给大家供大家参考. 具体实例代码如下: 复制代码 代码如下: $typename=20; $rtitle='tt'; for( $i=0;$i<=20;$i++) {  $rtitle_rand = array($typename,$rtitle,$typename);  shuffle($rtitle_rand);//数组进行随机排序  echo $rtitle_rand['0'].'<br />'; } 希望本文所述对大家的P

  • PHP二维数组排序的3种方法和自定义函数分享

    关于排序一般我们都是通过数据库或者nosql(eg:redis)先排好序然后输出到程序里直接使用,但是有些时候我们需要通过PHP直接来对数组进行排序,而在PHP里存储数据用到最多的就是对象和数组,但处理较多的就是数组,因为有非常丰富的内置函数库(其实对象一定程度上也可以理解为是数组),这些函数库很大程度上可以帮助我们实现某些功能.常用的系统函数有sort.asort.arsort.ksort.krsort等等,这里我主要说下对二维数组的排序,两种方法: 一.用PHP自带array_multiso

  • php数组排序usort、uksort与sort函数用法

    本文实例讲述了php数组排序usort.uksort与sort函数用法.分享给大家供大家参考.具体用法分析如下: 对数组排序:usort() 函数使用用户自定义的函数对数组排序,实例代码如下: 复制代码 代码如下: function cmp($a, $b)        //用户自定义回调函数 {   if($a==$b)         //如果两个参数相等   {     return 0;         //返回0   }   return($a>$b)?-1:1;       //如果

随机推荐