valor multidimensional index buscar array_search array php associative-array

php - multidimensional - Encontrar la clave del valor mínimo en una matriz asociativa



key array php (5)

En PHP, di que tienes una matriz asociativa como esta:

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

¿Cómo encontraría la clave con el valor más bajo? Aquí, estaría buscando cats .

¿Hay alguna función PHP incorporada que me he perdido que hace esto? También sería genial si hubiera una solución que representara varios valores idénticos, como se muestra a continuación:

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

Arriba, no me importaría si solo saliera bien; cats o dogs

Gracias por adelantado.


Así es como lo hice.

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

Espero que eso ayude



array_keys es tu amigo:

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

PD : hay un dup aquí en alguna parte en SO (tenía max lugar de min , pero puedo recordarlo claramente).


encontrar el valor más alto

print max(120, 7, 8, 50);

vuelve -> 120

$array = array(100, 7, 8, 50, 155, 78); print max($array);

devoluciones -> 155

encontrar el valor más bajo

print min(120, 7, 8, 50);

vuelve -> 7

$array = array(50, 7, 8, 101, 5, 78); print min($array);

vuelve -> 5


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

También puede voltear la matriz y ordenarla por clave:

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

Entonces la primera clave es el mínimo, y su valor es la clave en la matriz original.