首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP usort比较函数

PHP usort比较函数
EN

Stack Overflow用户
提问于 2012-01-20 07:30:55
回答 1查看 1.2K关注 0票数 1

我已经使用array_merge组合了两个数组,现在需要按字母顺序对它们进行排序。问题是我需要比较两个不同的键,

例如:

代码语言:javascript
复制
[0] => stdClass Object
(
[id] => 16
[title] => Oranges
)

[1] => stdClass Object
(
[id] => 23
[title] => Apples
)

[2] => stdClass Object
(
[id] => 16
[name] => Bananas
)

我需要将'name‘属性相互比较,以及与'title’属性进行比较,然后按字母顺序对它们进行排序(忽略id),这样我的结果将是:

苹果

香蕉

橙子

然而,我在这里拥有的函数:

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

usort($array, "compareItems");

...不组合,但对一组属性(title)和另一组属性(name)进行排序,从而得到:

苹果

橙子

香蕉

我希望我可以修改这个函数,将两者合并在一起-我不是一个真正的PHP程序员,所以任何帮助都是非常感谢的!

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-20 07:33:19

下面我提供的比较函数应该适用于您:

代码语言:javascript
复制
function compareItems($a, $b)
{
    $x = isset($a->title) ? $a->title : $a->name;
    $y = isset($b->title) ? $b->title : $b->name;
    return strcmp($x, $y);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8934921

复制
相关文章

相似问题

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