當前位置:首頁 > PHP教程 > php日期 > 列表

PHP實現二維數組按指定的鍵名排序的方法示例

發布:smiling 來源: PHP粉絲網  添加日期:2018-08-31 10:24:42 瀏覽: 評論:0 
  1. <?php 
  2. /*二維數組按指定的鍵值排序*/ 
  3. functionarray_sort($array,$keys,$type='asc'){ 
  4.   if(!isset($array) || !is_array($array) ||emptyempty($array)){ 
  5.     return''
  6.   } 
  7.   //排序字段名,如:id 
  8.   if(!isset($keys) || trim($keys)==''){ 
  9.     return''
  10.   } 
  11.   //排序方式,如:desc、asc 
  12.   if(!isset($type) ||$type==''|| !in_array(strtolower($type),array('asc','desc'))){ 
  13.     return''
  14.   } 
  15.   //定義一個數組 
  16.   $keysvalue=array(); 
  17.   foreach($arrayas$key=>$val){ 
  18.     //對排序字段值進行過濾 
  19.     $val[$keys] =str_replace('-','',$val[$keys]); 
  20.     $val[$keys] =str_replace(' ','',$val[$keys]); 
  21.     $val[$keys] =str_replace(':','',$val[$keys]); 
  22.     //將記錄中指定的鍵名放入數組中,如:[0]=>5,[1]=>3,[2]=>6 
  23.     $keysvalue[] =$val[$keys];//排序字段,如:id     索引=》排序鍵名 
  24.   } 
  25.   asort($keysvalue);//按值升序排序,且保持鍵名與鍵值之間的索引關系,如:[1]=>3,[0]=>5,[2]=>6 
  26.   reset($keysvalue);//指針重新指向數組第一個 
  27.   foreach($keysvalueas$key=>$vals) { 
  28.     $keysort[] =$key;//0=>[1],1=>[0],2=>[2] 
  29.   } 
  30.   $keysvalue=array(); 
  31.   $count=count($keysort);//排序記錄數 
  32.   if(strtolower($type) !='asc'){//降序 
  33.     for($i=$count-1;$i>=0;$i--) { 
  34.       $keysvalue[] =$array[$keysort[$i]]; 
  35.     } 
  36.   }else{//升序 
  37.     for($i=0;$i<$count;$i++){ 
  38.       $keysvalue[] =$array[$keysort[$i]]; 
  39.     } 
  40.   } 
  41.   return$keysvalue
  42. $array=array
  43.   array('name'=>'Tom','age'=>'23','like'=>'beer'), 
  44.   array('name'=>'Trump','age'=>'50','like'=>'Food'), 
  45.   array('name'=>'Jack','age'=>'26','like'=>'Travel'
  46. ); 
  47. print_r(array_sort($array,'age')); 
  48. ?> 

運行結果:

  1. Array 
  2.   [0] => Array 
  3.     ( 
  4.       [name] => Tom 
  5.       [age] => 23 
  6.       [like] => beer 
  7.     ) 
  8.   [1] => Array 
  9.     ( 
  10.       [name] => Jack 
  11.       [age] => 26 
  12.       [like] => Travel 
  13.     ) 
  14.   [2] => Array 
  15.     ( 
  16.       [name] => Trump 
  17.       [age] => 50 
  18.       [like] => Food 
  19.     ) 

Tags: 二維 數組 示例

分享到:

广西快3最大遗漏值统计表