Мне нужен ранг в моей системе. У меня есть массив $arr = array(120,26,38,96,22);
. Мне нужно ранжировать индекс внутри, не меняя свою позицию.Как оценивать индекс массива в PHP
Выход мне нужно что-то вроде:
120 ранга 1, 26 Оценка 4, 38 Оценка 3, 96 ранга 2, 22 Оценка 5
I» ve оценил это как рейтинг 1:
<?php
$arr = array(120,26,38,96,22);
$rank = 0;
$score=false;
$rows = 0;
foreach($arr as $sort){
$rows++;
if($score != $arr){
$score = $arr;
$rank = $rows;
}echo $sort.' is rank '.$rank.'</br>';
}
?>
А также мне нужна длина массива, чтобы быть динамичной.
Какая у вас логика 'rank'? – JustOnUnderMillions
Я бы сделал это, создав вторую копию $ arr массива, затем отсортировав ее, а затем найдите индекс # в отсортированном массиве для каждого значения в несортированном массиве. Вероятно, десятки способов сделать это см. Http: // php. net/manual/en/ref.array.php –
Если все позиции уникальны, выполните следующие действия: 'sort ($ arr); $ result = array_map (функция ($ a) {return $ a + 1;}, array_flip ($ arr)); ' – JustOnUnderMillions