php如何對(duì)二維數(shù)組排序

PHP
小億
82
2024-10-11 15:46:13

在PHP中,可以使用usort()函數(shù)對(duì)二維數(shù)組進(jìn)行排序。usort()函數(shù)接受兩個(gè)參數(shù):一個(gè)是要排序的數(shù)組,另一個(gè)是用于比較元素的回調(diào)函數(shù)。

以下是一個(gè)使用usort()對(duì)二維數(shù)組按行排序的示例:

<?php
$array = [
    ['name' => 'Tom', 'age' => 20],
    ['name' => 'Jerry', 'age' => 18],
    ['name' => 'Mike', 'age' => 22]
];

// 自定義排序規(guī)則:按年齡升序排列
function compare_age($a, $b) {
    if ($a['age'] == $b['age']) {
        return 0;
    }
    return ($a['age'] < $b['age']) ? -1 : 1;
}

// 使用usort()函數(shù)對(duì)二維數(shù)組進(jìn)行排序
usort($array, 'compare_age');

// 輸出排序后的數(shù)組
print_r($array);
?>

運(yùn)行上述代碼,輸出的結(jié)果將會(huì)是:

Array
(
    [0] => Array
        (
            [name] => Jerry
            [age] => 18
        )

    [1] => Array
        (
            [name] => Tom
            [age] => 20
        )

    [2] => Array
        (
            [name] => Mike
            [age] => 22
        )
)

在這個(gè)示例中,我們定義了一個(gè)名為compare_age()的回調(diào)函數(shù),用于比較兩個(gè)數(shù)組元素的年齡。然后,我們將這個(gè)函數(shù)傳遞給usort()函數(shù),以便對(duì)二維數(shù)組進(jìn)行排序。最后,我們使用print_r()函數(shù)輸出排序后的數(shù)組。

0