<?php
$data = array('sam'=>40, 'james'=>41, 'sunday'=>39, 'jude'=>45);
arsort($data)==('sam');
$i = 0;
$prev = "";
$j = 0;
foreach($data as $key => $val){ // loop array
if($val != $prev){ // if values are the same as previous
$i++; // add one
$i += $j; // add counter of same values
$j=0;
}else{
$j++; // this is if two values after eachother are the same (sam & james)
}
$new[$key] = $i; // create new array with name as key and rank as position
$prev = $val; // overwrite previous value
}
var_dump($new);
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
array(4) {
["jude"]=>
int(1)
["james"]=>
int(2)
["sam"]=>
int(3)
["sunday"]=>
int(4)
}