Forum und email

dbx_compare

(PHP 4 >= 4.0.7, PHP 5 <= 5.0.5, PECL dbx:1.1.0)

dbx_compare — Compara duas linhas para finalidades de ordenação

Descrição

int dbx_compare ( array $linha_a , array $linha_b , string $coluna_chave [, int $flags ] )

A função dbx_compare() retorna 0 se linha_a[$coluna_chave] é igual à linha_b[$coluna_chave], e 1 ou -1 se o anterior for maior ou menor do que o último, respectivamente, ou vice-versa se o parâmetro flag está configurado para usar a constante DBX_CMP_DESC. A função dbx_compare() é uma mão na roda para a função dbx_sort() para facilitar o uso e manuseamente de uma função pré-definida (customizada).

O parâmetro flags pode ser configurado para comparações específicas:

  • DBX_CMP_ASC - ordem crescente
  • DBX_CMP_DESC - ordem decrescente
e os tipos de comparações mais adequadas:
  • DBX_CMP_NATIVE - sem conversão de tipo
  • DBX_CMP_TEXT - compara itens como sendo strings
  • DBX_CMP_NUMBER - compara os itens numéricamente
Uma das comparações e um dos tipos de constante podem ser combinados com o operador bitwise OR (|). O valor padrão para o parâmetro flags são as constantes DBX_CMP_ASC | DBX_CMP_NATIVE.

Example#1 dbx_compare() exemplo

<?php
function reordenar_usuarios ($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"""bd""nome de usuário""senha")
    or die (
"Não foi possível conectar");

$resultado dbx_query ($link"SELECT id, parentid, descricao FROM tabela ORDER BY id");
    
// dados em $resultado são agora ordenados pelo id

dbx_sort ($resultado"reordenar_usuarios");
    
// dados em $resultado são agora ordenados por parentid (decrescente), depois por id

dbx_close ($link);
?>

Veja também dbx_sort().