【发布时间】:2014-06-11 11:19:20
【问题描述】:
我需要对一些数组进行排序,其中键是产品的价格。我用过ksort 和krsort,一切都按预期工作。问题是当键的数量超过一个数字时,它就不能正确排序。
数组示例:
$array = array(
'11,45' => 'product1',
'8,91' => 'product2',
'12,14' => 'product3',
'9,54' => 'product4
);
我得到的升序结果:
11,45 - 12,14 - 8,91 - 9,54
升序所需的结果:
8,91 - 9,54 - 11,45 - 12,14
【问题讨论】:
-
8,91被视为字符串而不是 int,您必须使用8.91,因此根据字母顺序 1 大于 8 -
我只在示例中使用逗号,在我的代码中我有 .而且它没有正确订购。
-
尝试将 5.6 和 51.0 添加到它们以查看它们将如何排序。因为它仍然有可能被读取为字符串。如果是结果将变为
11,45 - 12,14 - 51.0 - 5.6 - 8.91 - 9.54几乎检查排序是否真的按字母顺序排序