dbx_compare
(PHP 4 >= 4.1.0, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)
dbx_compare — Сравнивает две строки в целях сортировки
Описание
$row_a
, array $row_b
, string $column_key
, int $flags
= DBX_CMP_ASC | DBX_CMP_NATIVE
) : intdbx_compare() - это вспомогательная функция для dbx_sort(), позволяющая реализовать пользовательскую сортировку.
Список параметров
-
row_a
-
Первая строка
-
row_b
-
Вторая строка
-
column_key
-
Сравниваемый столбец
-
flags
-
Флаг
flags
задает направление сортировки:-
DBX_CMP_ASC
- по возрастанию -
DBX_CMP_DESC
- по убыванию
-
DBX_CMP_NATIVE
- без конвертации типа -
DBX_CMP_TEXT
- сравнивать как строки -
DBX_CMP_NUMBER
- сравнивать как числа
-
Возвращаемые значения
Возвращает 0
, если row_a[$column_key]
равно row_b[$column_key]
, и 1
или -1
, если первая больше, либо меньше второй соответственно.
Если флаг flag
задан как
DBX_CMP_DESC
, то порядок будет инвертирован.
Примеры
Пример #1 Пример использования dbx_compare()
<?php
function user_re_order($a, $b)
{
$rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
if (!$rv) {
$rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
}
return $rv;
}
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password")
or die("Не получилось подключиться");
$result = dbx_query($link, "SELECT id, parentid, description FROM table ORDER BY id");
// данные в $result отсортированы по столбцу id
dbx_sort($result, "user_re_order");
// А теперь в обратном порядке по parentid, а потом уже по id
dbx_close($link);
?>