<?php
$data = array(
array('id' => 1, 'name' => 'John Snow', 'score' => 80),
array('id' => 2, 'name' => 'John Fire', 'score' => 50),
array('id' => 3, 'name' => 'John Water', 'score' => 79),
array('id' => 4, 'name' => 'John Leaf', 'score' => 80),
);
$scores = array();
foreach ($data as $v)
$scores[$v['score']] = 1;
// sort by keys
krsort($scores);
// assign proper ranks to each score
$rank = 1;
foreach ($scores as &$v)
$v = $rank++;
// assign ranks
foreach ($data as &$v)
$v['rank'] = $scores[$v['score']];
print_r($data);
preferences:
35.12 ms | 402 KiB | 5 Q