2012-08-07 145 views
0

我正在使用usort函数对数组进行排序。该回路正常工作一样是排序(在某种程度上),但是我似乎已经错过了一些有关于小数位等。我函数是低于按值排序数组PHP

usort($this->view->blogs, 'comparison'); 

这里是功能。函数调用工作正常,我可以看到我在返回的有序数据

function comparison($a, $b) 
{ 
    return strcmp($a->cost_per_blog, $b->cost_per_blog); 
} 

的问题是,我现在回到像下面

0.09724 
0.58344 
1.16688 
12.05776 
120.5776 
126.60648 
13.22464 
132.63536 
138.66424 
168.80864 
18.08664 
18.08664 
18.67008 
180.8664 
19.25352 
21.10108 
22.26796 

的模式继续列表例如实际排序逻辑..看来我没有考虑到3位数字的排序。我似乎无法想象我失去了什么。任何帮助将不胜感激。

回答

2

不要比较字符串然后,比较数字:

return $a->cost_per_blog - $b->cost_per_blog; 
+0

我是个白痴。非常感谢你,对不起! – 2012-08-07 10:17:25

1

你比较他们作为字符串不是双打。