2013-09-21 3 views
0

Я использую библиотеку https://github.com/brunogaspar/cartify для управления моей корзиной. Все хорошо, за исключением того, что мне нужно, чтобы иметь возможность сортировать элементы, содержащиеся в array самой price ключа DESCСортировка объекта, который содержит массив по определенному ключу, DESC

Если я использую Cartify::cart()->contents(), вот пример одного из пунктов:

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

Как вы можете видеть, есть ключ price ... и если я не могу сортировать на уровне класса, мне придется сортировать эти элементы после факта.

+0

Возможный дубликат [Как отсортировать массив ассоциативных массивов по значению заданного ключа в PHP] (http://stackoverflow.com/questions/1597736/how-to-sort-an-array-of-associative -arrays по значению-в-а-дается ключ-в-РНР) – Dominik

ответ

1

Вы можете сделать это, используя usort и пользовательскую функцию сравнения. Что-то вроде этого:

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

Не самое элегантное решение жестко прописать ключ в функции сортировки, но он будет работать.

Смежные вопросы