2012-05-25 36 views
-1

我有以下数组,我想在价格值后排序主题。我一直在检查php手册array_multisort()函数,但它不是很清楚我怎么能达到结果。如何排序这个数组php

我的数组看起来

array=>(0=>array(id=>'1', name=>'example1', price='200')) 
array=>(1=>array(id=>'2', name=>'example1', price='120')) 
array=>(2=>array(id=>'3', name=>'example1', price='160')) 

价格值后的顺序应该是

array=>(1=>array(id=>'2', name=>'example1', price='120')) 
array=>(2=>array(id=>'3', name=>'example1', price='160')) 
array=>(0=>array(id=>'1', name=>'example1', price='200')) 
+4

SO需要识别问题中的“Sort”和“Array”,并自动链接到http://php.net/usort –

回答

2

使用usort()

function cmp ($a, $b) { 
    if ($a ['price'] == $b ['price']) { 
     return 0; 
    } 
    return ($a ['price'] < $b ['price']) ? -1 : 1; 
} 

usort ($array, "cmp"); 

MonkeyMonkeys'另类:

function cmp ($a, $b) { 
    return ($a ['price'] - $b ['price']); 
} 

usort ($array, "cmp"); 
+1

而不是比较,您可以使用'return $ a ['price'] - $ b ['price']' – MonkeyMonkey

+0

感谢您的回应!问题是,我想按照我的观点来实现这种重新排序,而且据我所知在这种情况下调用函数并不是一个好习惯。这将是唯一的解决方案? – lgt

+1

事实并非如此,这是做到这一点的最佳方式。 – Jeroen