首頁  >  問答  >  主體

array_multisort($name,SORT_ASC,$age,SORT_DESC,$arr);這句話只有$name有效,$age沒有起效,那是否寫上$age就顯得多餘了呢?


array_multisort($name,SORT_ASC,$age,SORT_DESC,$arr);這句話只有$name有效,$age沒有起效,那是否寫上$age就顯得多餘了呢?

时不待我时不待我2600 天前2445

全部回覆(15)我來回復

  • Rain

    Rain2018-07-18 12:42:51

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

    回覆
    0
  • Rain

    Rain2018-07-18 12:27:37

    不會顯得多餘。 $name數組和$age數組是從二維數組$arr數組分離出來的,
    如果只使用sort()或者asort()函數對$name數組排序的話,改變的只是$name數組元素的
    順序($name數組只是$arr數組裡一部分的副本,副本的改變不會引起本體的改變),
    並不會引起原先的二維數組$arr的變化。所以如果是對多維數組進行排序,應該使用array_multisort函數,
    array_multisort() 可以用來一次對多個數組進行排序,或者根據某一維或多維對多維數組進行排序。本例則是第二種依據某一維來對
    多維數組進行排序,array_multisort($name, SORT_ASC,$age,SORT_DESC,$arr)實現了對name屬性列的排序,age屬性列則
    會跟著做對應的排序。這樣來說其實也可以寫成array_multisort($name, SORT_ASC,$age,$arr),去掉SORT_DESC結果沒有變化,因為是沒有起到作用的
    ,預設只對第一個陣列起作用,第二個會跟著第一個變化(當然這是針對多維數組的操作)。

    回覆
    1
  • myfey

    myfey2017-11-27 14:48:53

    是的,,,

    你要覺得浪費你可以用asort排序啊

    #

    回覆
    0
  • CCIE

    CCIE2017-09-19 14:07:58

    array_multisort($name,SORT_ASC,$age,SORT_DESC,$arr);這句話只有$name有效,$age沒有起效,那是否寫上$age就顯得多餘了呢?

    回覆
    0
  • CCIE

    CCIE2017-09-19 14:07:46

    array_multisort($name,SORT_ASC,$age,SORT_DESC,$arr);這句話只有$name有效,$age沒有起效,那是否寫上$age就顯得多餘了呢?

    回覆
    0
  • CCIE

    CCIE2017-09-19 14:07:32

    array_multisort($name,SORT_ASC,$age,SORT_DESC,$arr);這句話只有$name有效,$age沒有起效,那是否寫上$age就顯得多餘了呢?

    回覆
    0
  • CCIE

    CCIE2017-09-19 14:07:17

    array_multisort($name,SORT_ASC,$age,SORT_DESC,$arr);這句話只有$name有效,$age沒有起效,那是否寫上$age就顯得多餘了呢?

    回覆
    0
  • CCIE

    CCIE2017-09-19 14:07:03

    array_multisort($name,SORT_ASC,$age,SORT_DESC,$arr);這句話只有$name有效,$age沒有起效,那是否寫上$age就顯得多餘了呢?

    回覆
    0
  • CCIE

    CCIE2017-09-19 14:06:53

    array_multisort($name,SORT_ASC,$age,SORT_DESC,$arr);這句話只有$name有效,$age沒有起效,那是否寫上$age就顯得多餘了呢?

    回覆
    0
  • CCIE

    CCIE2017-09-19 14:06:37

    array_multisort($name,SORT_ASC,$age,SORT_DESC,$arr);這句話只有$name有效,$age沒有起效,那是否寫上$age就顯得多餘了呢?

    回覆
    0
  • 取消回覆