Bir dizideki en yüksek değer indeksi Dönüş

6 Cevap php

Aşağıdaki gibi bir şey görünen bir diziden, nasıl ben dizideki en yüksek değerin endeksi alabilirsiniz. Aşağıdaki dizisi için, arzu edilen sonucu ''11 olacaktır.

Array (

[11] => 14
[10] => 9
[12] => 7
[13] => 7
[14] => 4
[15] => 6

)

6 Cevap

Benim çözüm:

$maxs = array_keys($array, max($array))

Note:
this way you can retrieve every key related to a given max value.

Sadece one key among all sadece kullanım $maxs[0] ilgileniyorsanız

<?php

$array = array(11 => 14,
               10 => 9,
               12 => 7,
               13 => 7,
               14 => 4,
               15 => 6);

echo array_search(max($array), $array);

?>

array_search() Return Values

Aksi YANLIŞ dizi bulunursa iğne anahtarını döndürür.

İğne birden fazla haystack bulunursa, first matching key döndürülür. Eşleşen tüm değerler için anahtarlarını geri dönmek için, bunun yerine isteğe bağlı search_value parametresi () array_keys kullanın.

Aşağıdaki gibi yüksek anahtarı almak için benim çözüm:

max(array_keys($values['Users']));

Böyle bir şey hile yapmak gerekir

function array_max_key($array) {
  $max_key = -1;
  $max_val = -1;

  foreach ($array as $key => $value) {
    if ($value > $max_val) {
      $max_key = $key;
      $max_val = $value;
    }
  }

  return $max_key;
}

Ben zaten cevap biliyorum ama burada daha zarif buluyorum bir çözümdür:

arsort($array);
reset($array);
echo key($array);

ve işte!

http://www.php.net/manual/en/function.max.php alınan fonksiyon

function max_key($array) {
    foreach ($array as $key => $val) {
        if ($val == max($array)) return $key; 
    }
}

$arr = array (
    '11' => 14,
    '10' => 9,
    '12' => 7,
    '13' => 7,
    '14' => 4,
    '15' => 6
);

die(var_dump(max_key($arr)));

Bir cazibe gibi çalışır