投票五名候选人并打印总和 PHP
Posted
技术标签:
【中文标题】投票五名候选人并打印总和 PHP【英文标题】:Voting of five candidates and print out sum PHP 【发布时间】:2022-01-12 23:30:59 【问题描述】:您的任务是编写一份选举申请,其中包含五位候选人,一次只能对其中一位候选人进行投票。将投票保存到文件 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>
示例输出
Total votes: 15786.
我设法做到了这一点:
<?php
$inputs = file('results.txt');
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: ",$add+1,".";
$file = 'results.txt';
readfile($file);
?>
我的结果告诉我:
implode(): Invalid arguments passed in
Total votes: 30.
【问题讨论】:
我觉得我已经(最近)回答了这个问题。 ***.com/a/70054407/2943403人们从哪里复制这个网络表单?一些糟糕的教程?如果value
与<option>
的文本完全相同,则在<option>
中写入value
没有任何好处。如果您选择第一个<option>
,则无需指定selected
。
【参考方案1】:
在您的代码中,您以$fin=array();
开头。但稍后在循环中,您将$fin
转换/替换为字符串。
$fin=$candidate . "|" . $res[$candidate];
所以这意味着$fin
在implode
方法内部,它是一个字符串,而不是一个数组。
$final = implode("\n", $fin);
Read about PHP implode()
【讨论】:
抱歉,我在我的 IDE 上修复了代码,但忘记在帖子中修复它。但它仍然给出同样的错误。 我相应地更新了答案。希望对您有所帮助。以上是关于投票五名候选人并打印总和 PHP的主要内容,如果未能解决你的问题,请参考以下文章
查找并打印总和为 100 的每个唯一组合,并返回 1 到 100 之间数字的所有此类组合的计数 [重复]
python Coursera - 打开网站,阅读JSON代码,计算数字并打印出总和。