Clasificación personalizada de matrices multidimensionales
La clasificación de matrices multidimensionales puede ser una tarea común en la programación. Este artículo demuestra cómo ordenar una matriz de este tipo según una clave específica usando la función PHP usort().
Comprensión de la tarea
Considere la siguiente matriz multidimensional donde cada elemento representa un registro:
Array (
[0] => Array
(
[iid] => 1
[invitee] => 174
[nid] => 324343
[showtime] => 2010-05-09 15:15:00
[location] => 13
[status] => 1
[created] => 2010-05-09 15:05:00
[updated] => 2010-05-09 16:24:00
)
[1] => Array
(
[iid] => 1
[invitee] => 220
[nid] => 21232
[showtime] => 2010-05-09 15:15:00
[location] => 12
[status] => 0
[created] => 2010-05-10 18:11:00
[updated] => 2010-05-10 18:11:00
))
Ordenar por clave
Para ordenar esta matriz por la clave de "estado", necesitamos definir una función de comparación que determine el orden de los elementos.
function cmp($a, $b) {
if ($a['status'] == $b['status']) {
return 0;
}
return ($a['status'] Esta función compara los valores de "estado" de dos elementos. Si los valores son iguales, devuelve 0. Si el primer elemento tiene un valor de "estado" menor que el segundo, devuelve -1. De lo contrario, devuelve 1.
Usando usort()
Ahora podemos usar la función usort() para ordenar la matriz usando nuestra función de comparación:
usort($array, "cmp");
Esto ordenará la matriz en orden ascendente según la clave de "estado". La matriz modificada tendrá sus elementos reorganizados en consecuencia.
Personalizar la comparación
La función de comparación se puede personalizar para ordenar la matriz según cualquier clave. Simplemente modifique la función para comparar los valores clave deseados. Esto proporciona flexibilidad para ordenar matrices multidimensionales según diferentes criterios.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3