php – 使用两个条件自定义排序数组数组
发布时间:2020-12-13 18:05:27 所属栏目: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
我有以下数组:
$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子句进行数据库排序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |