能否根据下面的两个数组来判断趋势?
程序员文章站
2023-12-30 13:16:58
...
php
这样的两个数组,怎么进行比对得出排名的趋势,比如用户145排名上升一位了,121排名下降一位了,132排名保持不变。
145 排名 2 -1
121 排名 3 1
167 排名 4 -1
100 排名 5 1
145 排名 2 -1
121 排名 3 1
167 排名 4 -1
100 排名 5 1
楼上正解
$old_rank = array( "1"=>array('uid'=>132,'use_score'=>61570), "2"=>array('uid'=>121,'use_score'=>50932), "3"=>array('uid'=>145,'use_score'=>46789), "4"=>array('uid'=>100,'use_score'=>39089), "5"=>array('uid'=>167,'use_score'=>29089) ); $new_rank = array( "1"=>array('uid'=>132,'use_score'=>61570), "2"=>array('uid'=>145,'use_score'=>51932), "3"=>array('uid'=>121,'use_score'=>50932), "4"=>array('uid'=>167,'use_score'=>40089), "5"=>array('uid'=>100,'use_score'=>39089) );
这样的两个数组,怎么进行比对得出排名的趋势,比如用户145排名上升一位了,121排名下降一位了,132排名保持不变。
回复讨论(解决方案)
$old_rank = array( "1"=>array('uid'=>132,'use_score'=>61570), "2"=>array('uid'=>121,'use_score'=>50932), "3"=>array('uid'=>145,'use_score'=>46789), "4"=>array('uid'=>100,'use_score'=>39089), "5"=>array('uid'=>167,'use_score'=>29089));$new_rank = array( "1"=>array('uid'=>132,'use_score'=>61570), "2"=>array('uid'=>145,'use_score'=>51932), "3"=>array('uid'=>121,'use_score'=>50932), "4"=>array('uid'=>167,'use_score'=>40089), "5"=>array('uid'=>100,'use_score'=>39089));foreach($old_rank as $k=>$v) $old[$v['uid']] = $k;foreach($new_rank as $k=>$v) $new[$v['uid']] = $k;foreach($new as $k=>$v) echo "$k 排名 $v " . ($v - $old[$k]) . '132 排名 1 0
';
145 排名 2 -1
121 排名 3 1
167 排名 4 -1
100 排名 5 1
$old_rank = array( "1"=>array('uid'=>132,'use_score'=>61570), "2"=>array('uid'=>121,'use_score'=>50932), "3"=>array('uid'=>145,'use_score'=>46789), "4"=>array('uid'=>100,'use_score'=>39089), "5"=>array('uid'=>167,'use_score'=>29089));$new_rank = array( "1"=>array('uid'=>132,'use_score'=>61570), "2"=>array('uid'=>145,'use_score'=>51932), "3"=>array('uid'=>121,'use_score'=>50932), "4"=>array('uid'=>167,'use_score'=>40089), "5"=>array('uid'=>100,'use_score'=>39089));foreach($old_rank as $k=>$v) $old[$v['uid']] = $k;foreach($new_rank as $k=>$v) $new[$v['uid']] = $k;foreach($new as $k=>$v) echo "$k 排名 $v " . ($v - $old[$k]) . '132 排名 1 0
';
145 排名 2 -1
121 排名 3 1
167 排名 4 -1
100 排名 5 1
楼上正解
推荐阅读