Сортировка массивов PHP на самом деле является сортировкой массивов PHP. В этой статье речь идет о сортировке набора результатов запроса к базе данных. Результаты запроса к базе данных иногда невозможно использовать напрямую, например, результаты, полученные с помощью оператора in в mysql, поэтому результаты необходимо каким-то образом отсортировать. На данный момент вам нужно отсортировать массив PHP. Чтобы отсортировать результаты базы данных, см. следующий пример:
В этом примере каждая ячейка массива данных представляет строку в таблице. Это типичный способ хранения данных массива в базах данных.
Данные в примере следующие:
том | издание
-------+--------
67 | 2
86 | 1
85 | 6
98 | 2
86 | 6
67 | 7Все
данные хранятся в массиве data. Обычно это результат, полученный из базы данных посредством цикла, такого как mysql_fetch_assoc() (на самом деле, вы можете думать об этой функции как о той же функции, что и о функции mysql_fetch_assoc(). Чтобы узнать о конкретных различиях, вы можете прочитать разницу в ключах в руководство по PHP).
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('объем' => 86, 'издание' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('объем' => 98, 'издание' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
В этом примере том будет отсортирован по убыванию, а выпуск - по возрастанию;
Теперь у вас есть массив со строками, но для array_multisort() требуется массив со столбцами, поэтому используйте следующий код, чтобы получить столбцы и затем отсортировать их.
// Получаем список столбцов
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
// Располагаем данные в порядке убывания по объему и в порядке возрастания по изданию
// Используем $data в качестве последнего параметра, сортируем по общему ключу
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data
Сбор данных теперь отсортирован, и результат следующий:
том | издание
-------+--------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7
На самом деле, существует множество методов, которые можно использовать при сортировке, например arsort(), asort(), ksort(), krsort(), natsort(), natcasesort(), rsort, который поставляется с массивом PHP. .(), usort(), array_multisort() и uksort().