2014-03-30 28 views
0

你好任何一個人都可以推薦我一個很好的功能,或者建議如何給候選人增加一個額外的積分並得到更多的選票?求和部分似乎工作正常,但在迴應最終結果時,我希望它包含一個額外的點。謝謝! 任務:五位候選人的php投票和打印總票數

您的任務是編寫一個包含五名候選人的選舉申請表,其中只有一名候選人可以一次投票。將鑄造的投票保存到文件results.txt中。該文件中有五行。每行都有候選人選舉號碼(1-5)並獲得投票。選舉號碼和收到的選票用|分隔字符。因此,文件結構如下所示:

1|2 
2|6 
3|8 
4|3 
5|10 

你的任務是寫一個PHP腳本,以便投票候選人獲得一個額外的投票表決後,改變RESULTS.TXT。該計劃應打印包括最新投票在內的已投票總數。所使用的形式如下:

<form action="voting.php" method="get"> 

Choose your candidate: 

<select name="candidate"> 

<option value=1 selected>1</option>   

<option value=2>2</option> 

<option value=3>3</option> 

<option value=4>4</option> 

<option value=5>5</option> 

</select> 

<br> 

<input type="submit" value="Send">     

</form> 


Example output 


Total votes casted: 12 votes. 

代碼:

<?php 
$inputs = file('results.txt'); 
$sum = 0 ; 
$res = array(); 

foreach ($inputs as $line) { 
    $var = explode('|', $line); 
    $res[$var[0]] = $var[1]; 
    $add= $add + $var[1]; 
} 
$fin=array(); 
$maxVotes=max($res); 
foreach ($res as $candidate => $voteCount) { 
    if ($voteCount == $maxVotes) { 
    $fin=$candidate . "|" . $res[$candidate]; 
    $res[$candidate]++; 

    } 
} 
$final = implode("\n", $fin); 
$fp = fopen('results.txt', 'w'); 
fwrite($fp, $final); 
fclose($fp); 
echo "Total votes casted: ",$add+1," votes."; 
$file = 'results.txt'; 
readfile($file); 
?> 
+1

這是你的功課 – mesutozer

+0

不,這是一個自我學習試圖提高我在PHP中的知識我是新來的PHP我已經嘗試了所有我最好的花費時間來打印額外的一點,但不能拿出一個好的功能或方式 – user3358884

+0

好吧,我相信你,請找到我的回答低於 – mesutozer

回答

0

讀取文件時,您可以構造一個數組:

$res = array(); 

foreach ($inputs as $line) { 
    $var = explode('|', $line); 
    $res[$var[0]] = $var[1]; 
} 

現在數組包含考生ID爲關鍵並將投票算作價值。因此,例如,候選人4的投票數是$res[4]

您可以通過max($res)找到最大票數。

的候選者得票最多可以用另一個循環中找到:? (假設max($res)存儲在一個名爲$maxVotes變量

foreach ($res as $candidate => $voteCount) { 
    if ($voteCount == $maxVotes) { 
    $res[$candidate]++; 
    } 
} 
+0

嗨,感謝你的時間,你試過了嗎?它不是爲我打印額外的點嗎? – user3358884

+0

不需要tr年。我不是故意爲你提供一個完整的代碼。您可以在第二個循環中看到,我正在遞增最高票數的候選人的投票數。在第二個循環結束時,您可以使用'print_r($ res);'查看計數。 – mesutozer

+0

據我的理解,我認爲就是這樣。那麼你能告訴我什麼是缺少的嗎?我的意思是不要爲我寫代碼,只是用言語告訴我。你知道我可以讀的一個好的來源嗎? – user3358884