📜  php usort 两列 - PHP (1)

📅  最后修改于: 2023-12-03 15:33:31.572000             🧑  作者: Mango

PHP中的usort函数:排序两列数据

在编程中,我们常常需要按照某一列数据来对数据进行排序。而在PHP中,usort函数就是用来对数组进行自定义排序的函数。下面我们来学习一下如何使用usort函数来对两列数据进行排序。

什么是usort函数?

usort函数是PHP中的一个排序函数,用于对数组进行自定义排序。具体来说,我们可以为usort函数传入一个回调函数,该回调函数将按照我们自己定义的规则进行排序。

如何使用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函数来对两列数据进行排序。我们需要定义一个回调函数,该函数用于比较数组中的两个元素大小,并按照我们自己定义的规则进行排序。在实际编程中,我们可以根据具体的排序需求,定义不同的回调函数来实现自定义排序功能。