在关联数组中查找最小值的键

Phi*_*ton 42 php associative-array

在PHP中,假设你有一个像这样的关联数组:

$pets = array(
    "cats" => 1,
    "dogs" => 2,
    "fish" => 3
);
Run Code Online (Sandbox Code Playgroud)

我怎样才能找到价值最低的钥匙?在这里,我一直在寻找cats.

是否有一些内置的PHP函数,我错过了这个吗?如果有一个解决方案可以解决几个相同的值,如下所示:

$pets = array(
    "cats" => 1,
    "dogs" => 1,
    "fish" => 2
);
Run Code Online (Sandbox Code Playgroud)

上面,我不介意它是否输出; catsdogs.

提前致谢.

Sil*_*ost 92

array_keys 是你的朋友:

$pets = array(
    "cats" => 1,
    "dogs" => 2,
    "fish" => 3
);
array_keys($pets, min($pets));  # array('cats')
Run Code Online (Sandbox Code Playgroud)

PS:在SO的某处有一个副本(它有max代替min,但我可以清楚地记住它).

  • min(array_keys($ pets,min($ pets));将确保你得到一个答案,而不是一个数组.这对于那些简单地复制和粘贴这个方法的人来说可能会让人感到困惑. (12认同)
  • @Augie Gardner current(array_keys($pets, min($pets)); - 快一点 (2认同)

lex*_*exx 10

多数民众赞成我是怎么做到的.

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

array_search(min($pets), $pets); 
Run Code Online (Sandbox Code Playgroud)

我希望有所帮助