请教一个php多维数组排序问题
程序员文章站
2024-01-31 11:48:58
...
php新手请教一个问题;
原数组结构如下,原数组是按ads_id,time进行排序;
现在的需求是根据二维数组的num总和重新进行排序
原数组结构如下,原数组是按ads_id,time进行排序;
现在的需求是根据二维数组的num总和重新进行排序
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
)
)
)
最终实现排序如下:
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
)
)
)
回复内容:
php新手请教一个问题;
原数组结构如下,原数组是按ads_id,time进行排序;
现在的需求是根据二维数组的num总和重新进行排序
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
)
)
)
最终实现排序如下:
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
)
)
)
function mySort($a, $b) {
$sumA = 0;
$sumB = 0;
foreach($a as $ele) {
$sumA += $ele['num'];
}
foreach($b as $ele) {
$sumB += $ele['num'];
}
return $sumB
使用 usort
自定义排序规则
上一篇: 升双星!散分 面试求祝福,该怎么解决
下一篇: NGINX userid 分析、解码