-1

I want to rank this following array according to points and duplicate points will be same ranked. Any idea how I will be complete this task.

Array
(
[6] => Array
    (
        [points] => 0
        [details] => Array
            (
                [name] => name 1
                [rank] => 
            )

    )

[220] => Array
    (
        [points] => 794
        [details] => Array
            (
                [name] => name 2
                [rank] => 
            )

    )

[369] => Array
    (
        [points] => 1002
        [details] => Array
            (
                [name] => name 3
                [rank] => 
            )

    )

[138] => Array
    (
        [points] => 1239
        [details] => Array
            (
                [name] => name 4
                [rank] => 
            )

    )

[778] => Array
    (
        [points] => 1302
        [details] => Array
            (
                [name] => name 5
                [rank] => 
            )

    )
)
TResponse
  • 3,940
  • 7
  • 43
  • 63

1 Answers1

0

something like this:

$sort=array();
foreach($array as $key=>$v){$sort[$key]=$v['points'];}
sort($sort);
$newArray=array();
$i=0; $points=0;
foreach($sort as $key=>$v){
    $i++;
    if($v['points']>$points){$i++; $points=$v['points'];
    $newArray[$key]=$array['key'];
    $newArray[$key]['rank']=$i;
}
$array=$newArray;
Oliver Williams
  • 5,966
  • 7
  • 36
  • 78
  • Thanks for your Answer. But my array is already sorted according to points. I just want to add rank value to my array. How I will do that. – Abdul Wajed Feb 16 '15 at 06:07