【发布时间】:2018-10-26 23:13:30
【问题描述】:
我有 2 页,第一页是为了获得 1 - 5 星评级。
第二个是查看被问问题的统计数据,因此我们可以看到有多少人选择了 Star 1,有多少人选择了 Star 2,等等。
在点击者提交的第一页上,我的 PHP 会创建一个与每个问题(问题 1、问题 2 等)相对应的文本文件,该文件将存储该人评分的 1 到 5 分的值。
在我遇到问题的第二页上,我能够从文本文件中获取值作为关联数组:
-var_dump -
array(3) { ["2 "]=> int(1) ["5 "]=> int(2) ["3 "]=> int(1) }
打印_r
Array ( [2 ] => 1 [5 ] => 2 [3 ] => 1 )
["2"]、["5"] 和 ["3"] 是我的文本文件中的评分,int() 是评分在我的文本文件中计算的次数,这就是我的方式m 获得点击每个问题评分的人数。
我正在尝试做的是当我使用例如键 ["2"] 回显数组以显示整数时!但是每次我尝试这样做时都会收到错误或什么也没有得到,最常见的错误是:
注意:未定义的偏移量:D:\Xampp\htdocs\ECwebpages\Survey-Stats\Survey-Stats.php 第 101 行中的 0 空
如果您需要更多信息,请告诉我。我会得到下面的代码!
<?php
$counter = 1;
if (file_exists("../Question1.txt") && file_exists("../Question10.txt")){
$files = "../Question1.txt";
$lines=file($files);
$vals = array_count_values($lines);
foreach($vals as $answers => $keyss ){}
var_dump($vals["2 "]);
foreach($lines as $linescntnt => $key){
if($key == 1){
//count how many poeple click on star 1 and place here
if($answers == '1'){
//display how many people clicked on the First rating
echo "<td>".$vals."</td>";
}else{
echo "<td>-<td>";
}
}
if ($key == 2){
//count how many poeple click on star 1 and place here
if($answers == '2'){
//display how many people clicked on the Second rating
echo "<td>-</td>";
}else{
echo "<td>-<td>";
}
}
if($key == 3){
//count how many poeple click on star 1 and place here
if($answers == '3'){
//display how many people clicked on the Third rating
echo "<td>".$answers."</td>";
}else{
echo "<td>-<td>";
}
}
if($key == 4){
//count how many poeple click on star 1 and place here
if($answers == '4'){
//display how many people clicked on the Fourth rating
echo "<td>".$answers."</td>";
}else{
echo "<td>-<td>";
}
}
if($key == 5){
//count how many poeple click on star 1 and place here
if($answers == '5'){
//display how many people clicked on the Fifth rating
echo "<td>".$answers."</td>";
}else{
echo "<td>-<td>";
}
}
}
}
?>
【问题讨论】:
-
大量代码。去掉所有不需要的东西并创建一个最小的可验证的完整示例。 stackoverflow.com/help/mcve
-
这是一个单维数组,所以你只需要
$vals["2 "]而不是$vals["0"]["2 "] -
@aynber 这也是我所做的,但仍然无法正常工作。
-
var_dump 显示您的密钥为
["2 "]["3 "]和["5 "]注意尾随空格 您可以更改密钥的填充方式或更改您的条件使用if($key == "1 ")、if($key == "2 ")等 -
@ozzy 您正在寻找条件中的数值,但使用字符串值填充数组索引,而字符串值与尾随空格永远不会匹配。当您构建数组时删除空格或转换为数值。
标签: php html arrays echo associative-array