La clasificación de matrices PHP en realidad es ordenar matrices PHP. En este artículo, se trata de ordenar el conjunto de resultados de la consulta de la base de datos. 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. En este momento, necesitas ordenar la matriz PHP. Para ordenar los resultados de la base de datos, consulte el siguiente ejemplo:
En este ejemplo, cada celda de la matriz de datos representa una fila de una tabla. Esta es una forma típica en que las bases de datos almacenan datos de matrices.
Los datos del ejemplo son los siguientes:
volumen | edición
-------+--------
67 | 2
86 | 1
85 | 6
98 | 2
86 | 6
67 | 7Todos
los datos se almacenan en una matriz denominada datos. Este suele ser el resultado obtenido de la base de datos a través de un bucle, como mysql_fetch_assoc() (de hecho, puede considerar esta función como la misma que la función mysql_fetch_assoc(). Para diferencias específicas, puede leer la diferencia en claves en el manual de PHP).
$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);
$data[] = array('volume' => 67, 'edition' => 7);
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($volume, SORT_DESC, $edición, SORT_ASC, $data);
la recopilación de datos ahora está ordenada y el resultado es el siguiente:
volumen | edición
-------+--------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7
De hecho, hay muchos métodos que se pueden usar al ordenar, como arsort(), asort(), ksort(), krsort(), natsort(), natcasesort(), rsort que viene con la matriz de PHP. , usort(), array_multisort() y uksort().