php新手请教一个问题;
原数组结构如下,原数组是按ads_id,time进行排序;
现在的需求是根据二维数组的num总和重新进行排序
<code>Array ( [5] => Array ( [0] => Array ( [num] => 840 [time] => 2015-10 [ads_id] => 5 ) [1] => Array ( [num] => 684 [time] => 2015-11 [ads_id] => 5 ) ) [6] => Array ( [0] => Array ( [num] => 23 [time] => 2015-10 [ads_id] => 6 ) [1] => Array ( [num] => 37 [time] => 2015-11 [ads_id] => 6 ) ) [7] => Array ( [0] => Array ( [num] => 280 [time] => 2015-10 [ads_id] => 7 ) [1] => Array ( [num] => 343 [time] => 2015-11 [ads_id] => 7 ) ) ) </code>
最终实现排序如下:
<code>Array ( [5] => Array ( [0] => Array ( [num] => 840 [time] => 2015-10 [ads_id] => 5 ) [1] => Array ( [num] => 684 [time] => 2015-11 [ads_id] => 5 ) ) [7] => Array ( [0] => Array ( [num] => 280 [time] => 2015-10 [ads_id] => 7 ) [1] => Array ( [num] => 343 [time] => 2015-11 [ads_id] => 7 ) ) [6] => Array ( [0] => Array ( [num] => 23 [time] => 2015-10 [ads_id] => 6 ) [1] => Array ( [num] => 37 [time] => 2015-11 [ads_id] => 6 ) ) ) </code>
php新手请教一个问题;
原数组结构如下,原数组是按ads_id,time进行排序;
现在的需求是根据二维数组的num总和重新进行排序
<code>Array ( [5] => Array ( [0] => Array ( [num] => 840 [time] => 2015-10 [ads_id] => 5 ) [1] => Array ( [num] => 684 [time] => 2015-11 [ads_id] => 5 ) ) [6] => Array ( [0] => Array ( [num] => 23 [time] => 2015-10 [ads_id] => 6 ) [1] => Array ( [num] => 37 [time] => 2015-11 [ads_id] => 6 ) ) [7] => Array ( [0] => Array ( [num] => 280 [time] => 2015-10 [ads_id] => 7 ) [1] => Array ( [num] => 343 [time] => 2015-11 [ads_id] => 7 ) ) ) </code>
最终实现排序如下:
<code>Array ( [5] => Array ( [0] => Array ( [num] => 840 [time] => 2015-10 [ads_id] => 5 ) [1] => Array ( [num] => 684 [time] => 2015-11 [ads_id] => 5 ) ) [7] => Array ( [0] => Array ( [num] => 280 [time] => 2015-10 [ads_id] => 7 ) [1] => Array ( [num] => 343 [time] => 2015-11 [ads_id] => 7 ) ) [6] => Array ( [0] => Array ( [num] => 23 [time] => 2015-10 [ads_id] => 6 ) [1] => Array ( [num] => 37 [time] => 2015-11 [ads_id] => 6 ) ) ) </code>
<code>function mySort($a, $b) { $sumA = 0; $sumB = 0; foreach($a as $ele) { $sumA += $ele['num']; } foreach($b as $ele) { $sumB += $ele['num']; } return $sumB < $sumA; } usort($arr, 'mySort');</code>
使用 usort
自定义排序规则