使用特定键DESC对包含数组的对象进行排序

时间:2013-09-21 22:32:03

标签: php sorting laravel laravel-4 shopping-cart

我正在使用https://github.com/brunogaspar/cartify库来管理我的购物车。事情很好,除了我需要能够通过array密钥price

DESC中包含的项目进行排序

如果我使用的是Cartify::cart()->contents(),则以下是其中一个项目的示例:

array(
    'id'      => 'sku_123ABC',
    'qty'     => 1,
    'price'   => 39.95,
    'name'    => 'T-Shirt',
    'options' => array(
        'size'  => 'L',
        'color' => 'Red'
    )

正如你所看到的,有一个price密钥......如果我不能在类级别上排序,我将不得不在事后对这些项进行排序。

1 个答案:

答案 0 :(得分:1)

您可以使用usort和自定义比较功能执行此操作。像这样:

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

不是将密钥硬编码到sort函数中的最优雅的解决方案,但它可以工作。