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

php自定义二维数组排序函数array_orderby用法示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-05 16:49:23 浏览: 评论:0 

这篇文章主要介绍了php自定义二维数组排序函数array_orderby用法,结合实例形式分析了php针对二维数组进行排序的相关遍历、判定、排序等操作技巧,需要的朋友可以参考下。

本文实例讲述了php自定义二维数组排序函数array_orderby用法,分享给大家供大家参考,具体如下:

  1. <?php 
  2. /** 
  3. I came up with an easy way to sort database-style results. This does what example 3 does, except it takes care of creating those intermediate arrays for you before passing control on to array_multisort().  
  4. */ 
  5. function array_orderby() 
  6.   $args = func_get_args(); 
  7.   $data = array_shift($args); 
  8.   foreach ($args as $n => $field) { 
  9.     if (is_string($field)) { 
  10.       $tmp = array(); 
  11.       foreach ($data as $key => $row
  12.         $tmp[$key] = $row[$field]; 
  13.       $args[$n] = $tmp
  14.       } 
  15.   } 
  16.   $args[] = &$data
  17.   call_user_func_array('array_multisort'$args); 
  18.   return array_pop($args); 
  19. /* 
  20. The sorted array is now in the return value of the function instead of being passed by reference. 
  21. */ 
  22. $data[] = array('volume' => 67, 'edition' => 2); 
  23. $data[] = array('volume' => 86, 'edition' => 1); 
  24. $data[] = array('volume' => 85, 'edition' => 6); 
  25. $data[] = array('volume' => 98, 'edition' => 2); 
  26. $data[] = array('volume' => 86, 'edition' => 6); 
  27. $data[] = array('volume' => 67, 'edition' => 7); 
  28. // Pass the array, followed by the column names and sort flags 
  29. $sorted = array_orderby($data'volume', SORT_DESC, 'edition', SORT_ASC); 
  30. print_r($sorted
  31. ?> 

运行结果:

  1. Array 
  2.   [0] => Array 
  3.     ( 
  4.       [volume] => 98 
  5.       [edition] => 2 
  6.     ) 
  7.   [1] => Array 
  8.     ( 
  9.       [volume] => 86 
  10.       [edition] => 1 
  11.     ) 
  12.   [2] => Array 
  13.     ( 
  14.       [volume] => 86 
  15.       [edition] => 6 
  16.     ) 
  17.   [3] => Array 
  18.     ( 
  19.       [volume] => 85 
  20.       [edition] => 6 
  21.     ) 
  22.   [4] => Array 
  23.     ( 
  24.       [volume] => 67 
  25.       [edition] => 2 
  26.     ) 
  27.   [5] => Array 
  28.     ( 
  29.       [volume] => 67 
  30.       [edition] => 7 
  31.     ) 
  32. )

Tags: php二维数组排序 array_orderby

分享到: