我已经使用array_merge组合了两个数组,现在需要按字母顺序对它们进行排序。问题是我需要比较两个不同的键,
例如:
[0] => stdClass Object
(
[id] => 16
[title] => Oranges
)
[1] => stdClass Object
(
[id] => 23
[title] => Apples
)
[2] => stdClass Object
(
[id] => 16
[name] => Bananas
)我需要将'name‘属性相互比较,以及与'title’属性进行比较,然后按字母顺序对它们进行排序(忽略id),这样我的结果将是:
苹果
香蕉
橙子
然而,我在这里拥有的函数:
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程序员,所以任何帮助都是非常感谢的!
提前谢谢。
发布于 2012-01-20 07:33:19
下面我提供的比较函数应该适用于您:
function compareItems($a, $b)
{
$x = isset($a->title) ? $a->title : $a->name;
$y = isset($b->title) ? $b->title : $b->name;
return strcmp($x, $y);
}https://stackoverflow.com/questions/8934921
复制相似问题