[英]array_multisort() not working when I try to sort an multiple array
我有這個數組$mergeArr
:
array (size=5)
'facebook' =>
array (size=3)
'facebook_enabled' => string '1' (length=1)
'facebook_url' => string 'https://www.facebook.com/' (length=25)
'facebook_order' => string '7' (length=1) //order element
'twitter' =>
array (size=3)
'twitter_enabled' => string '1' (length=1)
'twitter_url' => string 'https://www.twitter.com/' (length=24)
'twitter_order' => string '9' (length=1) //order element
'instagram' =>
array (size=3)
'instagram_enabled' => string '1' (length=1)
'instagram_url' => string 'https://www.instagram.com/' (length=26)
'instagram_order' => string '2' (length=1) //order element
'linkedin' =>
array (size=3)
'linkedin_enabled' => string '1' (length=1)
'linkedin_url' => string 'https://www.linkedin.com/' (length=25)
'linkedin_order' => string '5' (length=1) //order element
'pintrest' =>
array (size=3)
'pinterest_enabled' => string '1' (length=1)
'pinterest_url' => string 'https://www.pinterest.com/' (length=26)
'pinterest_order' => string '3' (length=1) //order element
我需要根據每個數組中的*_order
元素對其進行排序。
我嘗試了下面的代碼:
代碼PHP:
array_multisort(array_column($mergeArr, '2'), SORT_ASC, $mergeArr);
預期的輸出順序為:Instagram,Pinterest,Linkedin,Facebook,Twiter。
我收到的錯誤如下
array_multisort():數組大小不一致
你能告訴我如何排序這個數組,以便得到我想要的嗎?
提前致謝!
如果要比較的字段始終在第3個鍵中,則可以使用usort和array-values進行以下操作:
usort($array, function($a, $b) {
$a = array_values($a);
$b = array_values($b);
return $a[2] > $b[2];
});
直播示例: 3v4l
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.