【问题标题】:Sort an object that contains an array by a specific key, DESC按特定键 DESC 对包含数组的对象进行排序
【发布时间】:2013-09-21 22:32:02
【问题描述】:

我正在使用https://github.com/brunogaspar/cartify 库来管理我的购物车。一切都很好,除了我需要能够通过 priceDESCarray 中包含的项目进行排序。

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

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

如您所见,有一个price 键...如果我不能在班级级别上排序,我将不得不在事后对这些项目进行排序。

【问题讨论】:

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


【解决方案1】:

您可以使用usort 和自定义比较功能来做到这一点。像这样的:

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

将键硬编码到排序函数中不是最优雅的解决方案,但它会起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 2021-06-06
    相关资源
    最近更新 更多