dbx_compare

(PHP 4 >= 4.1.0, PHP 5 <= 5.0.4)

dbx_compare --  ソートするために二つのレコードを比較する

説明

int dbx_compare ( array row_a, array row_b, string column_key [, int flags] )

dbx_compare()row_a[$column_key]row_b[$column_key] に等しい場合に 0、 前者が後者より大きいかあるいは小さい場合にそれぞれ 1 あるいは -1、 もし DBX_CMP_DESC が設定されていればその逆を返します。 dbx_compare()dbx_sort() のヘルパ関数で、独自のソート関数を 作成しやすくします。

flags は比較の方向を指定します。

また、比較の型についても指定します。

方向からひとつ、型の定数からひとつを選び、ビット OR 演算子 (|) で 組み合わせます。flags パラメータのデフォルト値は DBX_CMP_ASC | DBX_CMP_NATIVE です。

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

dbx_close($link);
?>

dbx_sort() も参照ください。