2013-06-27 5 views
0

У меня есть массив, который должен быть отсортирован (на основе идентификатора):php | Многомерный массив сортировки

Array 
(
    [0] => Array 
    (
     [qty] => 1 
     [id] => 3 
     [name] => Name1 
     [sku] => Model 1 
     [options] => 
     [price] => 100.00 
    ) 
    [1] => Array 
    (
     [qty] => 2 
     [id] => 1 
     [name] => Name2 
     [sku] => Model 1 
     [options] => Color: <em>Black (+10$)</em>. Memory: <em>32GB (+99$)</em>. 
     [price] => 209.00 
    ) 

) 

Можно ли сортировать мой массив, чтобы получить выход (на основе ID)?

Array 
    (
    [0] => Array 
     (
     [qty] => 2 
     [id] => 1 
     [name] => Name2 
     [sku] => Model 1 
     [options] => Color: <em>Black (+10$)</em>. Memory: <em>32GB (+99$)</em>. 
     [price] => 209.00 
    ) 
    [1] => Array 
     (
     [qty] => 1 
     [id] => 3 
     [name] => Name1 
     [sku] => Model 1 
     [options] => 
     [price] => 100.00 
    ) 
) 

Спасибо!

+0

Это должно ответить на ваш вопрос: http://stackoverflow.com/questions/96759/how-do-i-sort-a-multidimensional-array-in-php – Joe

+0

Это также похоже на результат запроса к базе данных. Разве это не лучше, если использовать предложение 'ORDER BY' в запросе? – Phylogenesis

ответ

1

Попробуйте как

$id_arr = array(); 
foreach ($my_arr as $key => $value) 
{ 
    $id_arr[$key] = $value['id']; 
} 
array_multisort($id_arr, SORT_DESC, $my_arr); 

Вы также можете разместить SORT_ASC для assending order.Better добавить ORDER BY id на запрос, через который вы получаете этот массив результатов

1
function cmp($a, $b) { 
     return $a["id"] - $b["id"]; 
} 
usort($arr, "cmp");//$arr is the array to sort