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
Podría intentar investigar esto:
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.