PHP实现数组根据某个单元字段排序操作的教程

本文实例讲述了PHP实现数组根据某个单元字段排序操作。分享给大家供大家参考,具体如下:

如题,给出一个PHP数组,数组结构如下:

  1. $arr = array(
  2. array(
  3. 'name'=>'sadas',
  4. 'norder'=>1
  5. ),
  6. array(
  7. 'name'=>'sadas',
  8. 'norder'=>11
  9. ),
  10. array(
  11. 'name'=>'sadas',
  12. 'norder'=>123
  13. ),
  14. array(
  15. 'name'=>'sadas',
  16. 'norder'=>11
  17. )
  18. );

需要是需要按照norder从大到小的顺序,重新排列$arr数组的顺序。

可以使用array_multisort函数来帮助排序:

  1. function p($arr){
  2. echo "<pre>";
  3. print_r($arr);
  4. echo "</pre>";
  5. }
  6. $arr = array(
  7. array(
  8. 'name'=>'sadas',
  9. 'norder'=>1
  10. ),
  11. array(
  12. 'name'=>'sadas',
  13. 'norder'=>11
  14. ),
  15. array(
  16. 'name'=>'sadas',
  17. 'norder'=>123
  18. ),
  19. array(
  20. 'name'=>'sadas',
  21. 'norder'=>11
  22. )
  23. );
  24. $flag = array();
  25. foreach($arr as $v){
  26. $flag[] = $v['norder'];
  27. }
  28. array_multisort($flag, SORT_DESC, $arr);
  29. p($arr);

运行结果:

  1. Array
  2. (
  3. [0] => Array
  4. (
  5. [name] => sadas
  6. [norder] => 123
  7. )
  8. [1] => Array
  9. (
  10. [name] => sadas
  11. [norder] => 11
  12. )
  13. [2] => Array
  14. (
  15. [name] => sadas
  16. [norder] => 11
  17. )
  18. [3] => Array
  19. (
  20. [name] => sadas
  21. [norder] => 1
  22. )
  23. )