PHP 配列で値が最大の要素のキー名を取得したい
「php 配列 値 最大値のキー」を Qiita に絞り込んで検索してもドンピシャなのが出てこなかったので自分のググラビリティとして。
TL; DR (今北産業)
$maxes = array_keys($array, max($array)); // 値が最大の要素を抜き出す
$key_max = $maxes[0]; // 最初に出現した最大値のキー名を返す
- 「array_keys」 @ PHP マニュアル
- 「max」 @ PHP マニュアル
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',
)
- オンラインで動作を見る @ paiza.IO
動作確認
- PHP v5.6.40, v7.1.33, v7.4.4
参考文献
- 「Return index of highest value in an array」 @ StackOverflow
- 「php How to get the key of max value in array」 @ Google 検索
- 「php 配列 値 最大値のキー」@ Google 検索