dbx_compare

(PHP 4 >= 4.1.0, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)

dbx_compare — Сравнивает две строки в целях сортировки

Описание

dbx_compare ( array $row_a , array $row_b , string $column_key , int $flags = DBX_CMP_ASC | DBX_CMP_NATIVE ) : int

dbx_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);
?>

Смотрите также

  • dbx_sort() - Сортирует результат dbx_query с помощью пользовательской функции