array_multisort($name,SORT_ASC,$age,SORT_DESC,$arr);這句話只有$name有效,$age沒有起效,那是否寫上$age就顯得多餘了呢?
时不待我
时不待我 2017-08-09 21:27:25
0
15
2443

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

时不待我
时不待我

全部回覆(15)
Rain

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

Rain

不會顯得多餘。 $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結果沒有變化,因為是沒有起到作用的
,預設只對第一個陣列起作用,第二個會跟著第一個變化(當然這是針對多維數組的操作)。

myfey

是的,,,

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

#
CCIE

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

CCIE

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

CCIE

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

CCIE

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

CCIE

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

CCIE

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

CCIE

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!