2013-07-27 57 views
0

我在这种形式的数组:如何在PHP中对多维数组中的项目进行排序?

$parray[]=array('item_id'=>$rs->fields['item_id'], 
       'item_name'=>$rs->fields['item_name'], 
       'item_count' =>$cs->fields['item_count'], 
       'item_link'=>$rs->fields['item_link']); 

和在一个循环我设置的值。所以,我有他们在$ parray [0],$ parray [1] ...

现在,我该如何排序此item_count数组?

例如:

$parray[0] = 0, "hello", 5, www.abc.abc 
$parray[1] = 1, "hello2", 7, www.abc.abcab 
$parray[2] = 2, "hello1", 8, www.abc.abca 
$parray[3] = 3, "hello3", 2, www.abc.abcaaa 

结果应该是

$parray[0] = 2, "hello1", 8, www.abc.abca 
$parray[1] = 0, "hello", 5, www.abc.abc 
$parray[2] = 1, "hello2", 3, www.abc.abcab 
$parray[3] = 3, "hello3", 2, www.abc.abcaaa 

我如何管理的?

感谢

+0

[参考:所有的基本方式在PHP阵列和数据整理]的可能重复(http://stackoverflow.com/questions/17364127 /参考所有碱性-方式对排序阵列和数据功能于PHP) – deceze

回答

1
usort($parray, function ($a, $b){ 
    return $b['item_count'] - $a['item_count']; 
}); 
print_r($parray); 

这里的另一种方法:

$sub = array(); 
foreach ($parray as $item) { 
    $sub[] = $item['item_count']; 
} 
array_multisort($sub, SORT_DESC, $parray); 
print_r($parray); 
相关问题