Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Finding the minimum value's key in an associative array

In PHP, say that you have an associative array like this:

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

How would I find the key with the lowest value? Here, I'd be looking for cats.

Is there some built in PHP function that I've missed which does this? It would also be great if there was a solution that accounted for several values being identical, as below:

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

Above, I wouldn't mind if it just output either; cats or dogs.

Thanks in advance.

like image 206
Philip Morton Avatar asked Oct 19 '09 12:10

Philip Morton


1 Answers

array_keys is your friend:

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

P.S.: there is a dup here somewhere on SO (it had max instead of min, but I can distinctly remember it).

like image 184
SilentGhost Avatar answered Sep 22 '22 17:09

SilentGhost