投票五名候选人并打印总和 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&lt;option&gt; 的文本完全相同,则在&lt;option&gt; 中写入value 没有任何好处。如果您选择第一个&lt;option&gt;,则无需指定selected 【参考方案1】:

在您的代码中,您以$fin=array(); 开头。但稍后在循环中,您将$fin 转换/替换为字符串。

$fin=$candidate . "|" . $res[$candidate];

所以这意味着$finimplode 方法内部,它是一个字符串,而不是一个数组。

$final = implode("\n", $fin);

Read about PHP implode()

【讨论】:

抱歉,我在我的 IDE 上修复了代码,但忘记在帖子中修复它。但它仍然给出同样的错误。 我相应地更新了答案。希望对您有所帮助。

以上是关于投票五名候选人并打印总和 PHP的主要内容,如果未能解决你的问题,请参考以下文章

将我从网站上删除的输出存储到一个数组中并打印其中的特定部分

找到矩阵中总和最大的列并打印出来

查找并打印总和为 100 的每个唯一组合,并返回 1 到 100 之间数字的所有此类组合的计数 [重复]

python Coursera - 打开网站,阅读JSON代码,计算数字并打印出总和。

输入一个数,打印这个数并打印从1开始到这个数的奇数偶数总和加奇数减偶数

打印总和等于 k ​​的集合的子集