溫馨提示×

如何使用PHP實(shí)現(xiàn)多維度的排名

PHP
小樊
81
2024-09-21 00:31:46
欄目: 編程語言

要使用PHP實(shí)現(xiàn)多維度的排名,你可以創(chuàng)建一個(gè)函數(shù),該函數(shù)接受一個(gè)多維數(shù)組作為輸入,并返回一個(gè)根據(jù)指定維度排序的數(shù)組。以下是一個(gè)示例實(shí)現(xiàn):

<?php

function rankMultiDimensionalArray($array, $dimensions) {
    // 對輸入數(shù)組的每個(gè)元素進(jìn)行排序
    usort($array, function ($a, $b) use ($dimensions) {
        foreach ($dimensions as $dimension) {
            $aValue = array_key_first($a[$dimension]);
            $bValue = array_key_first($b[$dimension]);

            if ($aValue != $bValue) {
                return ($aValue < $bValue) ? -1 : 1;
            }
        }

        return 0;
    });

    return $array;
}

// 示例輸入數(shù)組
$data = [
    ['name' => 'Alice', 'age' => 30, 'city' => 'New York'],
    ['name' => 'Bob', 'age' => 25, 'city' => 'San Francisco'],
    ['name' => 'Charlie', 'age' => 30, 'city' => 'Los Angeles'],
    ['name' => 'David', 'age' => 28, 'city' => 'San Francisco'],
];

// 指定排序維度
$dimensions = ['age', 'city'];

// 對數(shù)組進(jìn)行排序
$rankedData = rankMultiDimensionalArray($data, $dimensions);

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

?>

在這個(gè)示例中,我們定義了一個(gè)名為rankMultiDimensionalArray的函數(shù),它接受一個(gè)多維數(shù)組$array和一個(gè)維度數(shù)組$dimensions作為參數(shù)。我們使用usort函數(shù)對數(shù)組進(jìn)行排序,根據(jù)$dimensions指定的維度進(jìn)行比較。

在示例輸入數(shù)組中,我們有4個(gè)人的信息,包括姓名、年齡和城市。我們指定排序維度為年齡和城市。運(yùn)行此代碼后,我們將得到一個(gè)根據(jù)年齡和城市排序的新數(shù)組。

0