php - 如何在 PHP 中根据数组元素对该数组进行排序?

标签 php arrays sorting

我有一个具有这种形式的数组

PHP 代码:

$mergeArr = array_merge($facebookURL, $twitterURL, $instagramURL, $linkedinURL, $pinterestURL); 

    array (size=15)
      'fbenabled' => string '1' (length=1)
      'fburl' => string 'https://www.facebook.com' (length=24)
      'fborder' => string '4' (length=1)         // order element
      'twenabled' => string '1' (length=1)
      'twurl' => string 'https://www.twiiter.com' (length=23)
      'tworder' => string '7' (length=1)         // order element
      'instaenabled' => string '1' (length=1)
      'instaurl' => string 'https://www.instagram.com' (length=25)
      'instaorder' => string '9' (length=1)      // order element
      'linkenabled' => string '1' (length=1)
      'linkurl' => string 'https://www.linkedin.com' (length=24)
      'linkorder' => string '2' (length=1)       // order element
      'pinenabled' => string '1' (length=1)
      'pinurl' => string 'https://www.pinterest.com' (length=25)
      'pinkorder' => string '1' (length=1)       // order element

我想根据每个元素的“order”值对该数组进行排序。

数组的新形式应该是:

   array (size=15)
          'pinenabled' => string '1' (length=1)
          'pinurl' => string 'https://www.pinterest.com' (length=25)
          'pinkorder' => string '1' (length=1)       // order element
          'linkenabled' => string '1' (length=1)
          'linkurl' => string 'https://www.linkedin.com' (length=24)
          'linkorder' => string '2' (length=1)       // order element
          'fbenabled' => string '1' (length=1)
          'fburl' => string 'https://www.facebook.com' (length=24)
          'fborder' => string '4' (length=1)         // order element
          'twenabled' => string '1' (length=1)
          'twurl' => string 'https://www.twiiter.com' (length=23)
          'tworder' => string '7' (length=1)         // order element
          'instaenabled' => string '1' (length=1)
          'instaurl' => string 'https://www.instagram.com' (length=25)
          'instaorder' => string '9' (length=1)      // order element

你能帮我订购这个阵列吗?

提前致谢!

最佳答案

最好的选择是使用 asort .

asort($mergeArr);

现在,我再次查看您的代码,我注意到您想要实现的顺序实际上非常难以做到,您想要对 twitter、instagram 和 facebook 相关元素进行分组,而不是实际对它们进行分组。

您可能想要重新组织数组,使其看起来像这样:

$mergeArr = array(
    'facebook'  => $facebookURL, 
    'twitter'   => $twitterURL, 
    'instagram' => $instagramURL, 
    'linkedin'  => $linkedinURL, 
    'pintrest'  => $pinterestURL
);

usort($mergeArr, function($a, $b) {

    return $a['order'] - $b['order'];

});

为了使其正常工作,您需要将“order”键更改为“order”一词,例如将“pinkorder”更改为“order”,将“linkorder”更改为“order”等。

关于php - 如何在 PHP 中根据数组元素对该数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57002900/

相关文章:

PHP 脚本未将 Swift 数据插入 MYSQL 数据库

php - 使用PHP表单上传PDF到数据库

c++ - 追加到 std::array

php - Symfony 3 安全性 - Access_control 不适用于一条路由

php - 我无法通过 PHPMailer 和 Gmail SMTP 使用联系表发送邮件

javascript - 我如何根据数组字符串元素的第一个字符在 Javascript 中对数组进行排序? - javascript

c++ - 使用 lambda 函数进行 vector 排序,当不在同一范围内时如何传递变量来捕获组?

javascript - Angular UI网格无法对具有行索引的列进行排序

javascript - 为什么 "!duplicateNote.length"不工作?

ruby-on-rails - ruby 数组映射双数组