我有一个2D数组,其中第一列包含page_id
,第二列包含points
。 page_id
是int
值,对应于数据库中的页面网址,points
指的是分配给该网页的点数。
我想显示页面,例如首先显示最高点的页面,反之亦然。
如果
示例arr[0][0] => 2
arr[0][1] => 200
arr[1][0] => 3
arr[1][1] => 29
arr[2][0] => 4
arr[2][1] => 400
----------------------
page_id | points
____________________
2 | 200
3 | 29
4 | 400
----------------------------------
应排序为
----------------------
page_id | points
____________________
4 | 400
2 | 200
3 | 29
----------------------------------
答案 0 :(得分:0)
我会编写自己的排序函数,使用php asort()
(http://php.net/asort)。
示例:
function aasort (&$array, $key) {
$sorter=array();
$ret=array();
reset($array);
foreach ($array as $ii => $va) {
$sorter[$ii]=$va[$key];
}
asort($sorter);
foreach ($sorter as $ii => $va) {
$ret[$ii]=$array[$ii];
}
$array=$ret;
}
aasort($your_array,"order");
请参阅此处的来源:https://stackoverflow.com/a/2699110/2335675
请注意,$ key或“order”是您要排序的键。因此,如果您想按[x] [1]排序,您的密钥应设置为1
。
答案 1 :(得分:0)
$pageId = 0;
$points = 0;
for($i=0;$i<count($arr);$i++){
for($j = $i+1;$j< count($arr);$j++){
if($arr[$i][1] < $arr[$j][1]){
$pageId = $arr[$i][0];
$points = $arr[$i][1];
$arr[$i][0] = $arr[$j][0];
$arr[$i][1] = $arr[$j][1];
$arr[$j][0] = $pageId;
$arr[$j][1] = $points;
}
}
}
试试这个......它会帮助你。