php 自定义条件,php – 使用两个条件自定义排序数组数组

这篇博客探讨了如何对包含user_id和product_id的数组进行排序,目标是确保每个用户的产品ID按升序排列,并且在继续下一个用户之前选择最低的product_id。博主尝试使用usort和array_multisort函数,但遇到了困难。他们提供的代码示例显示了一个可能的排序逻辑,但并未成功实现预期效果。
摘要由CSDN通过智能技术生成

我有以下数组:

$arr = [

[

'user_id' => 1,'product_id' => 1

],[

'user_id' => 1,'product_id' => 2

],'product_id' => 3

],[

'user_id' => 2,[

'user_id' => 3,'product_id' => 1

]

];

我想对它进行排序,看起来像这样:

$arr = [

[

'user_id' => 1,'product_id' => 3

]

];

所以基本上我需要通过product_id和user_id进行排序,以便在继续下一个之前从每个用户中选择较低数量的product_id.

我尝试使用usort但是我无法让它工作.

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

if($a['product_id'] == $b['product_id']){

return 0;

}

if($a['product_id'] < $b['product_id']){

if($a['user_id'] == $b['user_id']){

return 1;

}

if($a['user_id'] < $a['user_id']){

return 0;

}

return -1;

}else{

if($a['user_id'] == $a['user_id']){

return -1;

}

if($a['user_id'] < $a['user_id']){

return 0;

}

return 1;

}

});

我也尝试过array_multisort,但我能做到的就是使用我已从数据库中检索的相同顺序进行排序.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值