Los resultados de la consulta de la base de datos a veces no se pueden usar directamente, como los resultados obtenidos usando la declaración in en mysql, por lo que los resultados deben ordenarse de alguna manera.
Ejemplo 4. Ordenar los resultados de la base de datos
En este ejemplo, cada celda de la matriz de datos representa una fila de una tabla. Esta es una colección típica de datos registrados en una base de datos.
Los datos del ejemplo son los siguientes:
volumen | edición
-------+--------
67 | 2
86 | 1
85 | 6
98 | 2
86 | 6
67 | 7
Todos los datos se almacenan en una matriz denominada datos. Esto generalmente se obtiene de la base de datos a través de un bucle, como mysql_fetch_assoc().
$datos[] = array('volumen' => 67, 'edición' => 2);
$datos[] = array('volumen' => 86, 'edición' => 1);
$datos[] = array('volumen' => 85, 'edición' => 6);
$datos[] = array('volumen' => 98, 'edición' => 2);
$datos[] = array('volumen' => 86, 'edición' => 6);
$datos[] = array('volumen' => 67, 'edición' => 7);
?>
http://sucai.knowsky.com/
En este ejemplo, el volumen se ordenará en orden descendente y la edición se ordenará en orden ascendente.
Ahora tiene una matriz con filas, pero array_multisort() requiere una matriz con columnas, así que use el siguiente código para obtener las columnas y luego ordenarlas.
// Obtener la lista de columnas
foreach ($datos como $clave => $fila) {
$volumen[$clave] = $fila['volumen'];
$edición[$clave] = $fila['edición'];
}
// Ordena los datos en orden descendente según volumen y en orden ascendente según edición
// Usa $data como último parámetro, ordena por clave común
array_multisort($volumen, SORT_DESC, $edición, SORT_ASC, $datos);
?>
La recopilación de datos ahora está ordenada y los resultados son los siguientes:
edición de volumen |
-------+--------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7