簡體   English   中英

當我嘗試對多個數組進行排序時,array_multisort()無法正常工作

[英]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個鍵中,則可以使用usortarray-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM