要使用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ù)組。