首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对对象数组进行natsort?

如何对对象数组进行natsort?
EN

Stack Overflow用户
提问于 2013-02-12 22:44:03
回答 1查看 2.1K关注 0票数 4

我有一个对象数组,看起来像这样:

代码语言:javascript
复制
Array
(    
[5] => stdClass Object
    (
        [id] => 173
        [name] => Silo 1
    )

[6] => stdClass Object
    (
        [id] => 174
        [name] => Silo 10
    )

[7] => stdClass Object
    (
        [id] => 175
        [name] => Silo 11
    )

[11] => stdClass Object
    (
        [id] => 179
        [name] => Silo 2
    )

[12] => stdClass Object
    (
        [id] => 180
        [name] => Silo 3
    )
)

我正在尝试找出如何根据name对它们进行排序

我尝试过的东西:

代码语言:javascript
复制
usort($result, function($a, $b)
{
    if ($a->name == $b->name) return 0 ;
    return ($a->name < $b->name) ? -1 : 1 ;
});

代码语言:javascript
复制
usort($result, function($a, $b)
{
    strnatcmp($a->name, $b->name); // return (0 if ==), (-1 if <), (1 if >)
});

没有任何东西能给我提供我想要的输出:

代码语言:javascript
复制
Silo 1
Silo 2
Silo 3
Silo 10
Silo 11

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-12 22:46:58

您没有返回strnatcmp结果,因此PHP将假定一个NULL返回值:

代码语言:javascript
复制
usort(...) {
   return strnatcmp(...);
   ^^^^^^
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14835112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档