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

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 使用两个条件自定义排序数组数组脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下数组:
$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,但我能做到的就是使用我已从数据库中检索的相同顺序进行排序.

假设你的值是整数:
usort($campaigns,$b){
    if($a['product_id'] == $b['product_id']){
        return $a['user_id'] - $b['user_id'];
    } else {
        return $a['product_id'] - $b['product_id'];
    }
});

您还可以使用ORDER BY product_id,user_id子句进行数据库排序.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 使用两个条件自定义排序数组数组全部内容,希望文章能够帮你解决php – 使用两个条件自定义排序数组数组所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。