2009-07-13 29 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 2009-07-13 11:39:32

+4

約 功能rsort($ A,$ B)如何{返回排序($ B $ A); } – grantwparks 2009-07-27 00:52:40

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 2015-05-30 06:20:37