登录

关于array_multisort($name,SORT_ASC,$age,SORT_DESC,$arr);的问题;

这个函数应该是

array_multisort(array1,sorting order,sorting type,array2,array3...)

所以先对$name排序,然后对$age排序,再对$arr排序。

最后返回的结果用print_r($arr)表示,也就是只进行了$arr的排序。

并不是像老师说的那样返回到$arr中。

array_multisort($name,SORT_ASC,$age,SORT_DESC);

这样进行排序的结果,是不保留原键值对应关系的排序,

print_r($arr)在这种情况下的输出是name正向排序,age反向排序的二维数组。

# PHP
太山遍雨河润千里 太山遍雨河润千里 2248 天前 1363 次浏览

全部回复(1) 我要回复

  • Rain

    Rain2018-07-18 13:12:31

    经过多次反复调试发现array_multisort函数的$arr参数所起到的作用相当于一种把前面参数所做的排序改变追加到
    $arr本体数组当中去,因为array_multisort函数是传值调用,前面的排序操作就是对副本的操作,$arr参数相当于一种
    再次赋值,保证了本体的改变。但也不能完全当成是再赋值操作,因为,当改变这个$arr参数为一个新的数组$newArr参数的时候
    系统会报错,由此可见,$arr参数所起到的作用类似于再赋值操作但又不是。

    回复
    0
  • 取消 回复 发送