PHP 配列で要素の値が最大値のキー名を取得(要素の値の数値が最大になるキーを取得したい)


PHP 配列で値が最大の要素のキー名を取得したい

php 配列 値 最大値のキー」を Qiita に絞り込んで検索してもドンピシャなのが出てこなかったので自分のググラビリティとして。

TL; DR (今北産業)

$maxes   = array_keys($array, max($array)); // 値が最大の要素を抜き出す
$key_max = $maxes[0]; // 最初に出現した最大値のキー名を返す

TS; DR

データ
$array = [
    'banana' => 4,
    'carrot' => 1,
    'daikon' => 12, // <- 値 MAX
    'egg'    => 1,
    'apple'  => 12, // <- 値 MAX
];
最大値が出現した順に取得
$maxes = array_keys($array, max($array));
var_export($maxes);
結果
array (
  0 => 'daikon',
  1 => 'apple',
)
キーをソートしてから取得
ksort($array, SORT_NATURAL);
$maxes = array_keys($array, max($array));
var_export($maxes);
結果
array (
  0 => 'apple',
  1 => 'daikon',
)

動作確認

  • PHP v5.6.40, v7.1.33, v7.4.4

参考文献