阅读量:0
要使用PHP实现多维度的排名,你可以创建一个函数,该函数接受一个多维数组作为输入,并返回一个根据指定维度排序的数组。以下是一个示例实现:
<?php function rankMultiDimensionalArray($array, $dimensions) { // 对输入数组的每个元素进行排序 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; } // 示例输入数组 $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']; // 对数组进行排序 $rankedData = rankMultiDimensionalArray($data, $dimensions); // 输出排序后的数组 print_r($rankedData); ?>
在这个示例中,我们定义了一个名为rankMultiDimensionalArray
的函数,它接受一个多维数组$array
和一个维度数组$dimensions
作为参数。我们使用usort
函数对数组进行排序,根据$dimensions
指定的维度进行比较。
在示例输入数组中,我们有4个人的信息,包括姓名、年龄和城市。我们指定排序维度为年龄和城市。运行此代码后,我们将得到一个根据年龄和城市排序的新数组。