php 双重排序,在PHP中对数组进行双重排序

我需要在PHP中对数组进行排序,然后在第一个索引相同的情况下按其第二个索引进行排序.让我解释 :

元素将随机排列:

(2,1),(4,4),(2,9),(4,8),(2,35),(2,1),(2,35),(4,4),(4,25),(4,4)

我需要先按照第一个数字对它们进行排序.结果将是:

(2,1),(2,9),(2,1),(2,35),(4,4),(4,8),(4,4),(4,25),(4,4)

现在,您可以看到所有元素按第一个索引一起分组.现在我需要按照当前分组的第二个索引“WITHIN”进行分组.因此看起来像:

(2,1),(2,1),(2,9),(2,35),(4,4),(4,4),(4,4),(4,8),(4,25)

这只是数组的简单表示.实际数组如下:

Array

(

[0] => Array

(

[practice_id] => 119

[practice_location_id] => 173

)

[1] => Array

(

[practice_id] => 2

[practice_location_id] => 75

)

[2] => Array

(

[practice_id] => 18

[practice_location_id] => 28

)

[3] => Array

(

[practice_id] => 119

[practice_location_id] => 174

)

[4] => Array

(

[practice_id] => 119

[practice_location_id] => 173

)

[5] => Array

(

[practice_id] => 2

[practice_location_id] => 75

)

[6] => Array

(

[practice_id] => 119

[practice_location_id] => 174

)

[7] => Array

(

[practice_id] => 18

[practice_location_id] => 28

)

[8] => Array

(

[practice_id] => 18

[practice_location_id] => 27

)

)

非常感谢一些帮助.

解决方法:

这个回调使用我刚刚从@ casablanca的回答中学到的东西,然后把它放在一个循环中.这样,它不仅可以比较两个,而且可以比较多个键.

function sort_callback($x, $y)

foreach ($x as $key => $value) {

if ($x[$key] != $y[$key])

return $x[$key] - $y[$key];

}

return 0;

}

如前所述,将此函数作为usort()的回调函数.

标签:php,sorting

来源: https://codeday.me/bug/20190721/1497105.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值