我有一个2D数组
$myArray = [
0=>$Object,
1=>$Object,
2=>$Object,
3=>$Object,
//etc...
]
每个对象都有属性,例如其中一些具有相同的名称。我如何才能对数组进行排序,以使具有相同名称的对象彼此跟随,并且仅当没有其他具有相同名称属性的对象时,才转到下一个名称?
$myArray = [
//Objects with the first name
0=>$Object,
1=>$Object,
2=>$Object,
//Objects with the second name
3=>$Object,
4=>$Object,
//Objects with the third name
5=>$Object,
// etc.
]
该数组是从数据库生成的,因此它将永远不会具有相同的大小,并且带有名称的对象数可以是一个或多个。
答案 0 :(得分:1)
您可以将usort()与anonymous function结合使用,如下所示:
usort($dataArray, function($a, $b) {return strcmp($a->name, $b->name);});
或者这个:
function cmp($a, $b) {
return strcmp($a->name, $b->name);
}
usort($dataArray, "cmp");
这将对属性为name
的数据对象及其值进行排序。