Мне кажется, что эта функция не сортируется должным образом. Вот мой код:Использование usort на объекте php не работает
function cmpPriceDesc($a, $b) {
return strcmp($a->product_price, $b->product_price);
}
usort($this->products, "cmpPriceDesc");
возвращает следующее:
Array
(
[0] => stdClass Object
(
[virtuemart_manufacturer_id] => 2
[mf_name] => Karl
...
[product_price]=> 127.445
)
[1] => stdClass Object
(
[virtuemart_manufacturer_id] => 7
[mf_name] => Karl
...
[product_price]=> 13.445
)
[2] => stdClass Object
(
[virtuemart_manufacturer_id] => 5
[mf_name] => Karl
...
[product_price]=> 13.445
)
[3] => stdClass Object
(
[virtuemart_manufacturer_id] => 11
[mf_name] => Karl
...
[product_price]=> 18.000
)
Как вы можете видеть, что цена продукта не происходит от высокой к низкой. Есть идеи о том, почему?
Как вы думаете, 'strcmp' делает? – PeeHaa
Я не думаю, что использование сравнения строк для целых/десятичных цен - лучшая идея. – Jhecht
Как вы можете сказать, им относительно новый ... так что не стесняйтесь указывать мне в правильном направлении –