3v4l.org

run code in 300+ PHP versions simultaneously
<?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), ); function cmp($a, $b) { if ($a['score'] == $b['score']) { return 0; } return ($a['score'] > $b['score']) ? -1 : 1; } uasort($data, 'cmp'); $rank = 1; $prev = false; foreach ($data as $i=>$d) { if (!$prev) { $data[$i]['rank'] = $rank; $prev = $d['score']; continue; } elseif ($prev != $d['score']) { $rank++; } $data[$i]['score'] = $rank; $prev = $d['score']; } print_r($data);

preferences:
35.4 ms | 402 KiB | 5 Q