2009-07-13 14 views
0

ソート順を次の関数で昇順/降順に切り替えるにはどうすればよいですか?選択されたフィールドとタイトルの順に多次元配列を並べ替えるだけです。uasort()に昇順/降順オプションを渡しますか?

$sortby = 'date'; 
$orderby = 'asc'; 

function sort($a, $b) 
{ 
    $retval = strnatcmp($a[$sortby], $b[$sortby]); 
    if(!$retval) return strnatcmp($a['title'], $b['title']); 
    return $retval; 
} 

uasort($jobs, 'sort'); 

答えて

0

逆のオプションはありません。ソート関数の否定を返す新しいソート関数を作成する必要があります。

シンプルですが非効率:

function rsort($a, $b) 
{ 
    return -1 * sort($a, $b); 
} 
+0

アルファベット順のソートのためにその仕事はしかしウィル? – robotmay

+4

how about function rsort($ a、$ b){return sort($ b、$ a); } – grantwparks

0
<?php 
// Comparison function 
function cmp($a, $b) { 
    if ($a == $b) { 
     return 0; 
    } 
    return ($a>$b) ? -1 : 1; 
} 

// Array to be sorted 
$array = array('a' => 5.2, 'b' => 2.2, 'c' => 1.2, 'd' => 1.2,'f' => 5.5, 'g' => 1.2, 'h' => 6.2); 
print_r($array); 

// Sort and print the resulting array 
uasort($array, 'cmp'); 
print_r($array); 
?> 
+0

私は、大きなものから小さなものから小さなもの($ a <$ b)を返します($ a> $ b) – gautham

関連する問題