我想从高值到低值对列表进行排序。它的输出值来自投票中的投票。
这是创建列表的代码:
function votingScore($item, $itemvoted) {
$hector=count($itemvoted);$totalvotes=0;$in=0;$stepstr='';
$totalvotes=SumArray($itemvoted);
$in=0;
if ($totalvotes==0) { $totalvotes=0.0001; }
while ($in<$hector) {
$stepstr=$stepstr.'<li>'.stripslashes($item[$in]).(int)(($itemvoted[$in]/$totalvotes)*100).'% ';
$stepstr=$stepstr.'</li>';
$in++;
}
return '<ul>'.$stepstr.'</ul>'; }
投票保存在一个像这样的文本文件中: optionOne:11:optionTwo:5:
我尝试了以下操作:
arsort($stepstr);
foreach ($stepstr as $key => $val) {
echo "stepstr[" . $key . "] = " . $val . "\n"; }
FIX:
function votingScore($item, $itemvoted) {
$combineSort = array_multisort($itemvoted, SORT_DESC, $item, SORT_DESC); //added this line and got it to work
$hector=count($itemvoted);$totalvotes=0;$in=0;$stepstr='';
答案 0 :(得分:0)
如果我正确理解您的代码,您只需在arsort
上致电$itemvoted
,例如:
function votingScore($item, $itemvoted) {
$success = arsort($itemvoted); //Success will either be True or False
....
但是,根据$itemvoted
的外观(是关联的还是非关联的),您可能需要@George_Cummins所述的不同排序功能。请参阅link: