Получить наибольшее значение из массива - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть этот массив, где мне нужно получить самое большое значение, но самый большой ключ

Array = [
   0 = 2,
   1 = 2, 
   2 = 1,
   3 = 1,
],

самое большое значение из массива выше 2, но есть ключи 2, где он имеет значения 2 который составляет 0 и 1. каким-то образом мне нужно получить ключ массива там, где он самый большой, поэтому ключ равен 1. и я просто не могу переупорядочить значение, так как оно испортит значение ключа, потому что мне понадобится ключ

Ответы [ 3 ]

2 голосов
/ 21 февраля 2020

Все, что вам нужно, это al oop, который проходит через массив вместе с двумя переменными, которые вы обновляете соответствующим образом по мере необходимости:

  • maxValue: наибольшее значение, которое когда-либо было замечено
  • maxKey: ключ для наибольшего значения, которое когда-либо было замечено

В течение l oop, проверьте ключ и значение текущего элемента по отношению к ним. Если значение соответствует maxValue, но ключ больше, обновите maxKey. Если значение больше maxValue, измените ОБА maxKey и maxValue, чтобы соответствовать ключу и значению текущего элемента.

2 голосов
/ 21 февраля 2020

Один из подходов состоит в том, чтобы сначала отфильтровать ассоциативный массив, сохраняя только записи, значения которых совпадают с наибольшим значением. Затем возьмите максимальное значение array_keys() этого подмассива, чтобы найти самый высокий ключ.

$array = Array
(
    0 => 2,
    1 => 2,
    2 => 1,
    3 => 1
);
$array_max = array_filter($array, function($elem) USE ($array) {
    return $elem == max($array);
});

echo max(array_keys($array_max));
1 голос
/ 21 февраля 2020

надеюсь, это поможет вам, сначала вы получите максимальное значение с max ($ array), а затем получите ключ max

$array = array('2','2','1','1');

$highest_num = max($array);


$highest_key = max(array_keys($array,$highest_num));

print_r($highest_key);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...