[英]Sorting array by values PHP
我正在使用usort函数对数组进行排序。 循环和排序(在某种程度上)都正常工作,但是我似乎在小数点后等方面缺少一些东西。我的功能如下
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位数字的排序。 我似乎无法想到我所缺少的。 任何帮助将不胜感激。
然后不要比较字符串,比较数字:
return $a->cost_per_blog - $b->cost_per_blog;
您将它们比较为字符串而不是双精度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.