以下是按照两个条件对PHP数组进行排序的示例代码:
$students = array(
array('name' => 'John', 'age' => 21),
array('name' => 'Jane', 'age' => 19),
array('name' => 'Mike', 'age' => 22),
array('name' => 'Emily', 'age' => 20)
);
// 按照年龄升序排序,如果年龄相同则按照姓名升序排序
usort($students, function($a, $b) {
if ($a['age'] == $b['age']) {
return strcmp($a['name'], $b['name']);
}
return $a['age'] - $b['age'];
});
// 打印排序后的数组
foreach ($students as $student) {
echo $student['name'] . ' - ' . $student['age'] . "\n";
}
输出结果为:
Jane - 19
Emily - 20
John - 21
Mike - 22
以上代码使用usort
函数对数组进行排序。usort
函数接受一个匿名函数作为比较函数,该函数定义了两个参数 $a
和 $b
,表示要比较的两个数组元素。在比较函数中,首先检查两个数组元素的年龄是否相同,如果相同则使用strcmp
函数对姓名进行比较,如果不同则直接比较年龄。返回值为负数表示$a
在$b
之前,返回值为正数表示$a
在$b
之后,返回值为0表示两个元素相等。最后通过foreach
循环打印排序后的数组。
上一篇:按照两个条件对列表进行排序
下一篇:按照两个条件对数组进行排序