首頁  >  問答  >  主體

關於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反向排序的二維陣列。

太山遍雨河润千里太山遍雨河润千里2404 天前1501

全部回覆(1)我來回復

  • Rain

    Rain2018-07-18 13:12:31

    經過多次反覆調試發現array_multisort函數的$arr參數所起到的作用相當於一種把前面參數所做的排序改變追加到
    $arr本體數組當中去,因為array_multisort函數是傳值調用,前面的排序操作就是對副本的操作,$arr參數相當於一種
    再次賦值,保證了本體的改變。但也不能完全當成是再賦值操作,因為,當改變這個$arr參數為一個新的數組$newArr參數的時候
    系統會報錯,由此可見,$arr參數所起到的作用類似於再賦值操作但又不是。

    回覆
    0
  • 取消回覆