Php/docs/function.dbx-compare

提供:Dev Guides
< Php
移動先:案内検索

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 - 数値として比較します

方向からひとつ、型の定数からひとつを選び、ビット OR 演算子 (|) で 組み合わせます。


返り値

row_a[$column_key]row_b[$column_key] に等しい場合に 0、 前者が後者より大きいかあるいは小さい場合にそれぞれ 1 あるいは -1、 もし DBX_CMP_DESC が設定されていればその逆を返します。


例1 dbx_compare() の例

<?phpfunction 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");    // $result のデータは、まず parentid の降順で並べ替えられ、次に id で並べ替えられますdbx_close($link);?>

参考

  • dbx_sort() - カスタマイズされたソート関数により、dbx_query から結果をソートする