array_multisort 多维数组排序函数

参数中的数组被当成一个表的列并以行来进行排序 - 这类似 sql 的 order by 子句的功能,第一个数组是要排序的主要数组,数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推,PHP实例代码如下:

  1. <?php
  2. $a1=array("dog","cat");
  3. $a2=array("fido","missy");
  4. array_multisort($a1,$a2);
  5. print_r($a1);
  6. print_r($a2);
  7. ?>
  8. //输出:
  9. array ( [0] => cat [1] => dog )
  10. array ( [0] => missy [1] => fido )

PHP实例,名次排列,代码如下:

  1. <?php
  2. $grade = array("score" => array(70, 95, 70.0, 60, "70"),
  3. "name" => array("zhang san", "li si", "wang wu",
  4. "zhao liu", "liu qi"));
  5. array_multisort($grade["score"], sort_numeric, sort_desc,
  6. // 将分数作为数值,由高到低排序
  7. $grade["name"], sort_string, sort_asc);
  8. // 将名字作为字符串,由小到大排序
  9. var_dump($grade);
  10. ?> //开源软件:phpfensi.com
  11. //上例将输出:
  12. array(2) {
  13. ["score"]=>
  14. array(5) {
  15. [0]=>
  16. int(95)
  17. [1]=>
  18. string(2) "70"
  19. [2]=>
  20. float(70)
  21. [3]=>
  22. int(70)
  23. [4]=>
  24. int(60)
  25. }
  26. ["name"]=>
  27. array(5) {
  28. [0]=>
  29. string(5) "li si"
  30. [1]=>
  31. string(6) "liu qi"
  32. [2]=>
  33. string(7) "wang wu"
  34. [3]=>
  35. string(9) "zhang san"
  36. [4]=>
  37. string(8) "zhao liu"
  38. }
  39. }

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

  1. <?php
  2. $arr = array (array (1, 2, 3, 4), array ("a", "b", "b", "d"));
  3. array_multisort($arr[0], sort_desc, $arr[1], sort_asc);
  4. print_r($arr);
  5. ?>
  6. //运行该例子输出:
  7. array
  8. (
  9. [0] => array
  10. (
  11. [0] => 4
  12. [1] => 2
  13. [2] => 2
  14. [3] => 1
  15. )
  16. [1] => array
  17. (
  18. [0] => d
  19. [1] => b
  20. [2] => c
  21. [3] => a
  22. )
  23. )

array_multisort() 函数对多个数组或多维数组进行排序.