为了账号安全,请及时绑定邮箱和手机立即绑定

当我尝试对多个数组进行排序时,array_multisort() 不起作用

当我尝试对多个数组进行排序时,array_multisort() 不起作用

PHP
长风秋雁 2021-10-08 21:26:51
我有这个数组$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():数组大小不一致你能告诉我如何对这个数组进行排序,这样我才能得到我想要的吗?
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

如果要比较的字段始终在第 3 个键中,您可以使用usort和array-values 执行此操作:


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

    $a = array_values($a);

    $b = array_values($b);

    return $a[2] > $b[2];

});

现场示例:3v4l


查看完整回答
反对 回复 2021-10-08
  • 1 回答
  • 0 关注
  • 362 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信