php怎么给二维数组排序

PHPz
Lepaskan: 2023-04-17 17:20:40
asal
4888 人浏览过

在开发中,我们经常需要对数据进行排序,以便更好地呈现和使用。对于二维数组,排序可以按照某一个数据字段来进行。本文将介绍如何使用PHP给二维数组进行排序。

一、使用sort()函数对二维数组排序

sort()是PHP的一个内置函数,能够按照升序对数组中的值进行排序。当对二维数组进行排序时,sort()函数默认按照数组的第一个字段进行排序。例如,我们有一个二维数组:

$arr = array(
     array('id'=>2,'name'=>'li', 'age'=>20),
     array('id'=>1,'name'=>'zhang', 'age'=>22),
     array('id'=>3,'name'=>'wang', 'age'=>18)
);
Salin selepas log masuk

我们可以使用sort()函数来按照id字段进行排序:

sort($arr);
print_r($arr);
Salin selepas log masuk

输出结果为:

Array
(
    [0] => Array
        (
            [age] => 18
            [id] => 3
            [name] => wang
        )

    [1] => Array
        (
            [age] => 20
            [id] => 2
            [name] => li
        )

    [2] => Array
        (
            [age] => 22
            [id] => 1
            [name] => zhang
        )

)
Salin selepas log masuk

可以看出,按照id字段进行排序后,数组中的元素按照升序排列。

二、使用usort()函数对二维数组排序

sort()函数只能按照数组的第一个字段进行排序,如果要按照其他字段进行排序,就需要使用usort()函数。usort()函数需要传入一个自定义的回调函数,用于指定排序的规则。例如,我们要按照age字段进行排序:

function cmp($a, $b)
{
    if ($a['age'] == $b['age']) {
        return 0;
    }
    return ($a['age'] <$ b['age']) ? -1 : 1;
}

usort($arr, "cmp");
print_r($arr);
Salin selepas log masuk

输出结果为:

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => wang
            [age] => 18
        )

    [1] => Array
        (
            [id] => 2
            [name] => li
            [age] => 20
        )

    [2] => Array
        (
            [id] => 1
            [name] => zhang
            [age] => 22
        )

)
Salin selepas log masuk

可以看出,按照age字段进行排序后,数组中的元素按照年龄升序排列。

三、使用array_multisort()函数对二维数组排序

array_multisort()函数是一个非常强大的排序函数,可以按照多个条件对二维数组进行排序。如果想按照多个字段进行排序,可以使用array_multisort()函数。例如,我们要首先按照age字段排序,如果age相同,则按照id排序:

$ages = array();
$ids = array();
foreach ($arr as $key => $value) {
    $ages[$key] = $value['age'];
    $ids[$key] = $value['id'];
}
array_multisort($ages, SORT_ASC, $ids, SORT_ASC, $arr);

print_r($arr);
Salin selepas log masuk

输出结果为:

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => wang
            [age] => 18
        )

    [1] => Array
        (
            [id] => 2
            [name] => li
            [age] => 20
        )

    [2] => Array
        (
            [id] => 1
            [name] => zhang
            [age] => 22
        )

)
Salin selepas log masuk

可以看出,按照age字段和id字段进行排序后,数组中的元素按照年龄升序排列,age相同时按照id进行升序排列。

总结:

本文介绍了三种方法来对二维数组进行排序,分别是使用sort()函数、usort()函数和array_multisort()函数。在开发中,选择哪种方式取决于具体的需求。希望本文对大家有所帮助。

以上是php怎么给二维数组排序的详细内容。更多信息请关注PHP中文网其他相关文章!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!