PHP具有多于1点式柱排序多维通过
问题描述:
可能重复进行排序:
How do I sort a multidimensional array in php
Sorting a multidimensional array in PHP?PHP具有多于1点式柱排序多维通过
如何可以由高,中排序的阵列(见下文),低?
# Generate random events
$severity = array('high','medium','low');
$events = array();
for ($i=1,$n=10;$i<=$n;$i++) {
$events["Country{$i}"] = array(
'high' => rand(0,100),
'medium' => rand(0,100),
'low' => rand(0,100),
'total' => 'X'
);
}
我意味着在底线我将有一个排序后的数组,其保持由高,则介质的最高值排序的所有的countryX
,然后低 - 所有在1个大阵列。
尝试了不同的方法,但显示正确的结果。
答
function sillySort($a, $b) {
if ($a['high'] > $b['high']) {
return -1;
} else if ($a['high'] < $b['high']) {
return 1;
} else {
if ($a['medium'] > $b['medium']) {
return -1;
} else if ($a['medium'] < $b['medium']) {
return 1;
} else {
if ($a['low'] > $b['low']) {
return -1;
} else if ($a['low'] < $b['low']) {
return 1;
} else {
return 0;
}
}
}
}
uksort($events, 'sillySort');
阅读[在array_multisort]的文件(http://php.net/manual/en/function.array-multisort.php) – hackartist 2012-03-04 21:10:22
找到了解决基于在array_multisort文档,可以在http://引擎收录.com/taMH4Qni – Broshi 2012-03-05 09:07:52