【问题标题】:Sorting array by values PHP按值排序数组PHP
【发布时间】:2012-08-07 10:12:02
【问题描述】:

我正在使用 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 位数字的排序。我似乎无法想到我错过了什么。任何帮助将不胜感激。

【问题讨论】:

    标签: php arrays string sorting


    【解决方案1】:

    那么不要比较字符串,比较数字:

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

    【讨论】:

      【解决方案2】:

      您将它们作为字符串而不是双精度进行比较。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-29
        • 2020-07-30
        • 2017-08-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-14
        • 2018-10-17
        • 1970-01-01
        相关资源
        最近更新 更多