我有这个数组$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
- 1 回答
- 0 关注
- 362 浏览
添加回答
举报
0/150
提交
取消