(PHP 4 >= 4.1.0, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)
dbx_compare — Compara duas linhas para finalidades de ordenação
$row_a
, array $row_b
, string $column_key
[, int $flags
] ) : intA 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).
row_a
Primeira linha
row_b
Segunda linha
column_key
A coluna comparada
flags
O parâmetro flags
pode ser configurado para comparações
específicas:
DBX_CMP_ASC
- ordem crescente
DBX_CMP_DESC
- ordem decrescente
DBX_CMP_NATIVE
- sem conversão de tipo
DBX_CMP_TEXT
- compara itens como sendo strings
DBX_CMP_NUMBER
- compara os itens numéricamente
flags
são as constantes
DBX_CMP_ASC
| DBX_CMP_NATIVE
.
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
.
Exemplo #1 Exemplo da dbx_compare()
<?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);
?>