当前位置:首页 > PHP教程 > php数组 > 列表

php二维数组排序与遍历

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-19 22:54:56 浏览: 评论:0 

关于php二维数组定义我就不说多了,很简单的,下面几款实例都是讲关于php 二维数组排序与遍历,我们每个实例都是以不同的方法介绍,代码如下:

  1. function multi_array_sort($multi_array,$sort_key,$sort=sort_asc){    
  2.     if(is_array($multi_array)){    
  3.         foreach ($multi_array as $row_array){    
  4.             if(is_array($row_array)){    
  5.                 $key_array[] = $row_array[$sort_key];    
  6.             }else{    
  7.                 return -1;    
  8.             }    
  9.         }    
  10.     }else{    
  11.         return -1;    
  12.     }    
  13.     array_multisort($key_array,$sort,$multi_array);    
  14.     return $multi_array;    
  15. }  
  16.  
  17. array
  18.             array('id'=>1,'data'=>'a'), 
  19.             array('id'=>3,'data'=>'c'), 
  20.             array('id'=>2,'data'=>'b'
  21.         ); 

php本身是有一个多维数组排序的函数的,代码如下:

bool array_multisort ( array $ar1 [, mixed $arg [, mixed $... [, array $... ]]] )

方法二,代码如下:

  1. <?php  
  2. //以时间inputdate为key值进行二维数组降序排列  
  3. function array_sort($arr,$keys,$type){  
  4. $keysvalue=array();  
  5. $i = 0;  
  6. foreach($arr as $key=>$val) {  
  7. $val[$keys] = str_replace("-","",$val[$keys]);  
  8. $val[$keys] = str_replace(" ","",$val[$keys]);  
  9. $val[$keys] = str_replace(":","",$val[$keys]);  
  10. $keysvalue[] =$val[$keys]; 
  11. }  
  12. asort($keysvalue); //key值排序  
  13. reset($keysvalue); //指针重新指向数组第一个  
  14. foreach($keysvalue as $key=>$vals) {  
  15. $keysort[] = $key;  
  16. }  
  17. $new_array = array();  
  18. if($type != "asc"){  
  19. for($ii=count($keysort)-1; $ii>=0; $ii--) {  
  20. $new_array[] = $arr[$keysort[$ii]];  
  21. }  
  22. }else{  
  23. for($ii=0; $ii<count($keysort); $ii++){  
  24. $new_array[] = $arr[$keysort[$ii]];  
  25. }  
  26. }  
  27. return $new_array;  
  28. }  
  29. ?> 

方法三,代码如下:

  1. <?php 
  2.     $a = array
  3.        0=>array("id"=>1,"name"=>"小何","addr"=>"0:1"), 
  4.        1=>array("id"=>2,"name"=>"小刚","addr"=>"0:1:2"), 
  5.        2=>array("id"=>3,"name"=>"小军","addr"=>"0:1:3"), 
  6.        3=>array("id"=>4,"name"=>"公司","addr"=>"0:4"), 
  7.     ); 
  8. function sort_by($array$keyname = null, $sortby){ 
  9.     $myarray = $inarray = array(); 
  10.     foreach($array as $i=>$befree){ 
  11.       $myarray[$i] = $array[$i][$keyname]; 
  12.     } 
  13.     switch($sortby){ 
  14.        case 'asc'
  15.        asort($myarray); 
  16.        break
  17.        case 'arsort'
  18.        arsort($myarray); 
  19.        break
  20.        case 'natcasesor'
  21.        natcasesor($myarray); 
  22.        break
  23.     } 
  24.     foreach($myarray as $key=>$befree){ 
  25.         $inarray[$key] = $array[$key]; 
  26.         } 
  27.           return $inarray
  28. print_r(sort_by($a,"addr","arsort")); 
  29. //开源软件:phpfensi.com 
  30. print_r($a[2]["id"]); 
  31. ?>

Tags: php二维数组排序 php数组遍历

分享到: