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.  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 "
    "
  61. var_dump($arr1); 
  62. echo ""
  63.  
  64. $arr2 = sortdata($data"age","desc"); 
  65. echo "
    "
  66. var_dump($arr2); 
  67. echo ""
分享到:
php 数组元素随机排序代码 - php数组
php 数组元素随机排序代码 因为工作需要我要对我定义好的数组进行随机排序,每一次循环都要是不同的,下面我们利用了php shuffle函数随机对数组元素进行排序,方法非常简单. shuffle() 函数把数组中的元素按随机顺序重新排列,若成功,则返回 true,否则返回 false. 注释:本函数为数组中的单元赋...
php遍历数组几种方法 - php数组
php遍历数组几种方法 在php教程遍历数据我们常用的有二种方法,利用了for 与foreach来操作,前者是知道数据长度,后者可以不知道数据长度,下面我们来分别举例说明. for遍历数组的实例代码如下:   两种输出结果完全相同,对于遍历多维数据我们就不说了,如果是多维数据利用foreach会更...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……