如何使用usort在php中执行自然排序 [英] How to perform a natural sort in php using usort

查看:102
本文介绍了如何使用usort在php中执行自然排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人知道在对象上使用PHP中的usort函数执行自然顺序排序的功能是什么.

Does anyone know what the function is to perform a natural order sort using the usort function in PHP on an object.

让我们说对象($ obj-> Rate)在

Lets say the object ($obj->Rate)has a range of values in

$obj->10
$obj->1
$obj->2
$obj->20
$obj->22

我要如何使sort函数返回

What is I am trying to get the sort function to return

$obj->22
$obj->20
$obj->10
$obj->2
$obj->1

作为我当前的标准排序功能

As my current standard sort function

function MySort($a, $b)
{ 
    if ($a->Rate == $b->Rate)
    {
        return 0;
    } 
    return ($a->Rate < $b->Rate) ? -1 : 1;
}

正在返回

$obj->1
$obj->10
$obj->2
$obj->20
$obj->22

推荐答案

strnatcmp 用于您的比较功能.例如就这么简单

Use strnatcmp for your comparison function. e.g. it's as simple as

function mysort($a, $b) {
   return strnatcmp($a->rate, $b->rate);
}

这篇关于如何使用usort在php中执行自然排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆