2013-07-27 2 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); 
Смежные вопросы