2013-06-27 170 views
0

我有一个数组,需要(基于ID)进行排序: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