a diferencia de lo que otros han publicado, no puede utilizar las funciones min()
/max()
para este problema, ya que estas funciones no entienden la estructura de datos (matriz) que se aprobó en. estas únicas funciones trabajo para elementos de matriz escalar.
COMENZAR EDITAR
La razón por la cual el uso de min()
y max()
parece dar la respuesta correcta está relacionado con el tipo de fundición matrices de números enteros que es un undefined behaviour:
El comportamiento de la conversión a entero no está definido para otras t ypes. No confíe en cualquier comportamiento observado, ya que puede cambiar sin previo aviso.
Mi declaración anterior sobre el tipo de fundición fue incorrecta. En realidad, min()
y max()
funcionan con arreglos pero no de la forma en que el OP los necesita para funcionar. Al utilizar min()
y max()
con múltiples matrices o una matriz de elementos de matrices son elemento por elemento comparación de izquierda a derecha:
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)
/*
* first element compared to first element: 2 == 2
* second element compared to second element: 4 < 5
* first array is considered the min and is returned
*/
Traducido al problema de la OP Esto muestra la razón por la cual el uso directo de min()
y max()
parece produce el resultado correcto.Los primeros elementos de arrays' son los id
-valores, por lo tanto, min()
y max()
los compararemos primera, por cierto que resulta en el resultado correcto, porque el más bajo id
es el que tiene el más bajo y el más alto count
id
es el que tiene la más alta count
.
FIN EDITAR
La forma correcta sería utilizar un bucle.
$a = array(
array('id' => 117, 'name' => 'Networking', 'count' => 16),
array('id' => 188, 'name' => 'FTP', 'count' => 23),
array('id' => 189, 'name' => 'Internet', 'count' => 48)
);
$min = PHP_INT_MAX;
$max = 0;
foreach ($a as $i) {
$min = min($min, $i['count']);
$max = max($max, $i['count']);
}
+1 Me encontré con este problema hoy y acabo de hacer un ciclo. Curioso sobre qué otros métodos hay. – MitMaro
Si hay alguna función que lo haga, se implementará con bucles, entonces ¿qué tiene de malo usar sus propias funciones? –
@Svetlozar Angelov: para las funciones de PHP, los bucles se escribirán en C, no en PHP, por lo que generalmente son más rápidos. –