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 с помощью пользовательской функции