📅  最后修改于: 2023-12-03 15:33:31.572000             🧑  作者: Mango
在编程中,我们常常需要按照某一列数据来对数据进行排序。而在PHP中,usort函数就是用来对数组进行自定义排序的函数。下面我们来学习一下如何使用usort函数来对两列数据进行排序。
usort函数是PHP中的一个排序函数,用于对数组进行自定义排序。具体来说,我们可以为usort函数传入一个回调函数,该回调函数将按照我们自己定义的规则进行排序。
假设我们需要对一个二维数组进行排序,该数组有两列:id和score。我们需要按照score来进行降序排序,如果score相同,则按照id来进行升序排序。那么我们可以写出以下代码来实现排序:
<?php
function my_cmp($a, $b)
{
if ($a['score'] == $b['score']) {
return $a['id'] - $b['id'];
} else {
return $b['score'] - $a['score'];
}
}
$data = array(
array('id' => 1, 'score' => 80),
array('id' => 2, 'score' => 90),
array('id' => 3, 'score' => 70),
array('id' => 4, 'score' => 90),
array('id' => 5, 'score' => 80),
);
usort($data, "my_cmp");
print_r($data);
?>
我们首先定义了一个回调函数my_cmp,该函数的作用是:如果两个元素的score相同,则按照它们的id升序排序;否则按照score降序排序。然后我们创建了一个二维数组$data,用于存储待排序的数据。最后我们调用usort函数,并将$data和回调函数名"my_cmp"传入,usort函数会按照我们自己定义的规则对$data进行排序,并将排序后的结果输出。
通过上述代码,我们学习了如何使用usort函数来对两列数据进行排序。我们需要定义一个回调函数,该函数用于比较数组中的两个元素大小,并按照我们自己定义的规则进行排序。在实际编程中,我们可以根据具体的排序需求,定义不同的回调函数来实现自定义排序功能。