PHP 数组排序二维或多维排序问题

来源:互联网 发布:工程问题c语言求解 pdf 编辑:程序博客网 时间:2024/04/28 16:12

(个人学习保留,有不对的地方请指正)

交代下背景,之前公司测试提出来的bug,手机端提交的答案后 题号顺序乱了,两个解决办法;

1、在sql中存入的时候进行排序,因为我没权限管理数据库,存入数据的是Java写接口,没有涉及到,所以就不多说了。

2、现在用的在网页端程序中对数据进行新的排序。

      --1、因为本人对数组不熟悉,试过sort、asort,这些根据数组的key进行排序,这些没成功。

      --2、之后在网上查询了数组排序的函数,找到了array_multisort()。

我的数组类型

例如:

$arr=Array ( '0' => Array ( 'a' => 1, 'b' => 2,'c' => 3 ),          '1' => Array ( 'a' => 3,'b' => 2,'c' => 6 ),          '2' => Array ( 'a' => 6 ,'b' => 2,'c' => 8 ),          '3' => Array ( 'a' => 2 ,'b' => 2,'c' => 8 ));

直接上代码:

$newArr=[];

for($i=0;$i<count($arr);$i++){   $newArr[] = $arr[$i]["a"];}array_multisort($newArr,$arr);
print_r($newArr);
结果:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 6 )
print_r($arr);
结果:Array ( [0] => Array ( [a] => 1 [b] => 2 [c] => 3 )
   [1] => Array ( [a] => 2 [b] => 2 [c] => 8 ) 
   [2] => Array ( [a] => 3 [b] => 2 [c] => 6 ) 
   [3] => Array ( [a] => 6 [b] => 2 [c] => 8 ) ) 

定义和用法

array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。

注释:字符串键名将被保留,但是数字键名将被重新索引,从 0 开始,并以 1 递增。

注释:您可以在每个数组后设置排序顺序和排序类型参数。如果没有设置,每个数组参数会使用默认值。 

0 0
原创粉丝点击