问题描述:对象数组上的PHP usort函数不起作用
答案:PHP的usort函数用于对数组进行自定义排序。如果在对象数组上使用usort函数时发现不起作用,可能是由于以下几个原因:
以下是一个示例,演示如何在对象数组上使用usort函数进行排序:
class Person {
public $name;
public $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
}
// 定义比较函数,按照年龄进行升序排序
function compareAge($a, $b) {
if ($a->age == $b->age) {
return 0;
}
return ($a->age < $b->age) ? -1 : 1;
}
// 创建对象数组
$people = [
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 20)
];
// 使用usort函数进行排序
usort($people, "compareAge");
// 打印排序结果
foreach ($people as $person) {
echo $person->name . " - " . $person->age . "\n";
}
在这个例子中,我们创建了一个Person类表示人员信息,包含姓名和年龄两个属性。然后定义了一个compareAge函数,按照年龄进行排序。最后,我们创建了一个对象数组$people,包含三个Person对象,并使用usort函数对其进行排序。排序结果将按照年龄的升序排列输出。
腾讯云相关产品介绍链接:
领取专属 10元无门槛券
手把手带您无忧上云