php专区

 首页 > php专区 > PHP基础 > 数组 > php多维数组排序与操作函数 - php数组

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

分享到:
【字体:大 中 小】
导读:
          PHP多维数组排序与操作函数,代码如下:functionarraycd($arr){static$res_arr=array();if(is_array($arr)){foreach($arras$key=$val){if(is_array($val)){arraycd($val);}else{$res_arr[]=$val;}}}...

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

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

  1. function arraycd($arr){ 
  2. static $res_arr=array(); 
  3. if(is_array($arr)) 
  4. { 
  5.  foreach($arr as $key=>$val) 
  6.    { 
  7.       if(is_array($val)) 
  8.       { 
  9.          arraycd($val); 
  10.          }else{ 
  11.          $res_arr[]=$val; 
  12.          } 
  13.          } 
  14.          }elseif(is_string($arr)) 
  15.          { 
  16.             $res_arr[]=$arr; 
  17.             } 
  18.             return implode(",",$res_arr); 
  19.             } 
  20. $fruits = array (  
  21. "fruits" => array("a" => "orange", "b" => "banana", "c" => "apple"),  
  22. "numbers" => array(1, 2, 3, 4, 5, 6),  
  23. "holes" => array("first", 5 => "second", "third")  
  24. ); 
  25. $strayy=arraycd($fruits); 
  26. 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_array, array 
  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.  
  37. $data=array( 
  38.  array( 
  39.   'name'=>'alice', 
  40.   'key'=>'2fc4ab3d639e5400efdfc73bc27e83f1', 
  41.   'age'=>20 
  42.  ), 
  43.  array( 
  44.   'name'=>'claudia', 
  45.   'key'=>'831c2b79c1f19af39c7e3321e11e5f5e', 
  46.   'age'=>18 
  47.  ), 
  48.  array( 
  49.   'name'=>'beatrice', 
  50.   'key'=>'6f8512a2066b8f35a27a495ce1228c76', 
  51.   'age'=>100 
  52.  ), 
  53.  array( 
  54.   'name'=>'denise', 
  55.   'age'=>25, 
  56.   'key'=>'ef6de3b178bf9f69a9fef72e4ee7bbe9' 
  57.  ) 
  58. ); 
  59.  
  60. $arr1 = sortdata($data, "name","asc"); 
  61. echo "
    "; 
  62. var_dump($arr1); 
  63. echo ""; 
  64.  
  65. $arr2 = sortdata($data, "age","desc"); 
  66. echo "
    "; 
  67. var_dump($arr2); 
  68. echo ""; 
分享到:
php 数组元素随机排序代码 - php数组
php 数组元素随机排序代码 因为工作需要我要对我定义好的数组进行随机排序,每一次循环都要是不同的,下面我们利用了php shuffle函数随机对数组元素进行排序,方法非常简单. shuffle() 函数把数组中的元素按随机顺序重新排列,若成功,则返回 true,否则返回 false. 注释:本函数为数组中的单元赋...
php遍历数组几种方法 - php数组
php遍历数组几种方法 在php教程遍历数据我们常用的有二种方法,利用了for 与foreach来操作,前者是知道数据长度,后者可以不知道数据长度,下面我们来分别举例说明. for遍历数组的实例代码如下:   两种输出结果完全相同,对于遍历多维数据我们就不说了,如果是多维数据利用foreach会更...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……