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

php多维数组排序与操作函数

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-05 13:25:08 浏览: 评论:0 

PHP多维数组排序与操作函数,代码如下:

  1. function arraycd($arr){ 
  2. static $res_arr=array(); 
  3. if(is_array($arr)) 
  4.  foreach($arr as $key=>$val
  5.    { 
  6.       if(is_array($val)) 
  7.       { 
  8.          arraycd($val); 
  9.          }else
  10.          $res_arr[]=$val
  11.          } 
  12.          } 
  13.          }elseif(is_string($arr)) 
  14.          { 
  15.             $res_arr[]=$arr
  16.             } 
  17.             return implode(",",$res_arr); 
  18.             } 
  19. $fruits = array (  
  20. "fruits" => array("a" => "orange""b" => "banana""c" => "apple"),  
  21. "numbers" => array(1, 2, 3, 4, 5, 6),  
  22. "holes" => array("first", 5 => "second""third")  
  23. ); 
  24. $strayy=arraycd($fruits); 
  25. var_dump($strayy); 

看一个多维数组排序,代码如下:

  1. function sortdata($data$col$order){ 
  2.  if (count($data)) $temp_array[key($data)] = array_shift($data); 
  3.  
  4.  foreach($data as $key => $val){ 
  5.   $offset = 0; 
  6.   $found = false; 
  7.   foreach($temp_array as $tmp_key => $tmp_val){ 
  8.    if(!$found and strtolower($val[$col]) > 
  9.  
  10. strtolower($tmp_val[$col])){ 
  11.     $temp_array = array_merge((array
  12.  
  13. array_slice($temp_array,0,$offset), 
  14.      array($key => $val), 
  15.      array_slice($temp_array,$offset
  16.     ); 
  17.     $found = true; 
  18.    } 
  19.    $offset++; 
  20.   } 
  21.   if(!$found) { 
  22.    $temp_array = array_merge($temp_arrayarray 
  23.  
  24. ($key => $val)); 
  25.    } 
  26.  } 
  27.  if (strtolower($order)=="asc"){ 
  28.   $array = array_reverse($temp_array); 
  29.  } else { 
  30.   $array = $temp_array
  31.  } 
  32.  return $array
  33.  
  34. 主函数 
  35.  
  36. $data=array
  37.  array
  38.   'name'=>'alice'
  39.   'key'=>'2fc4ab3d639e5400efdfc73bc27e83f1'
  40.   'age'=>20 
  41.  ), 
  42.  array
  43.   'name'=>'claudia'
  44.   'key'=>'831c2b79c1f19af39c7e3321e11e5f5e'
  45.   'age'=>18 
  46.  ), 
  47.  array
  48.   'name'=>'beatrice'
  49.   'key'=>'6f8512a2066b8f35a27a495ce1228c76'
  50.   'age'=>100 
  51.  ), 
  52.  array
  53.   'name'=>'denise'
  54.   'age'=>25, 
  55.   'key'=>'ef6de3b178bf9f69a9fef72e4ee7bbe9' 
  56.  ) 
  57. ); 
  58.  
  59. $arr1 = sortdata($data"name","asc"); 
  60. echo "<pre>"
  61. var_dump($arr1); 
  62. echo "</pre>"
  63.  
  64. $arr2 = sortdata($data"age","desc"); 
  65. echo "<pre>"
  66. var_dump($arr2); 
  67. echo "</pre>"

Tags: php多维数组排序 操作函数

分享到: