web-dev-qa-db-ja.com

連想配列で最小値のキーを見つける

PHPでは、次のような連想配列があるとしましょう。

$pets = array(
    "cats" => 1,
    "dogs" => 2,
    "fish" => 3
);

最低値のキーを見つけるにはどうすればよいですか?ここでは、catsを探しています。

いくつかの組み込みのPHP関数がありませんでしたが、これはどれですか?以下のように、いくつかの値が同一であると説明したソリューションがあれば素晴らしいでしょう。

$pets = array(
    "cats" => 1,
    "dogs" => 1,
    "fish" => 2
);

上記で、単に出力するだけでもかまいません。 catsまたはdogs

前もって感謝します。

41
Philip Morton

それは私がそれをやった方法です。

$pets = array(
    "cats" => 1,
    "dogs" => 2,
    "fish" => 3
);

array_search(min($pets), $pets); 

それがお役に立てば幸いです

10
lexx
$min_val = null;
$min_key = null;
foreach($pets as $pet => $val) {
  if ($val < $min_val) {
    $min_val = $min;
    $min_key = $key;
  }
}

配列を反転し、キーで並べ替えることもできます。

$flipped = array_flip($pets);
ksort($flipped);

その場合、最初のキーは最小値であり、その値は元の配列のキーです。

2
Jeff Ober

これらを調べてみてください:

2
Phill Pafford