我有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) }
的print_r
Array ( [2 ] => 1 [5 ] => 2 [3 ] => 1 )
[" 2"],[" 5"]和[" 3"]是我文字中的评分文件,int()是在我的文本文件中计算评分的时间,以及我如何获得每个问题点击评分的人数。
我尝试做的是当我用例如键[" 2"]回显数组时,显示整数!但是每当我尝试这样做时,我都会收到错误或者什么也得不到,我得到的最常见的错误是:
注意:未定义的偏移量:D在第101行的D:\ Xampp \ htdocs \ ECwebpages \ Survey-Stats \ Survey-Stats.php中 NULL
如果您需要更多信息,请告诉我。我将在下面提供代码!
<?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>";
}
}
}
}
?>
答案 0 :(得分:1)
经过一段时间的反复试验后,我终于能够完成这项工作,@ Malovich在评论中解释说(“当你构建数组时删除空格或转换为数值。”),所以我trim()
我的文件$lines
:
$files = "../Question1.txt";
$lines=file($files);
--trim--> $trimmed_array=array_map('trim',$lines); <--
然后我继续并做了我的计算:
$vals = array_count_values($trimmed_array);
最后为了从key获取我的值,以显示我点击了特定明星的人数:
if(isset($vals[1])){
echo "<td>".$vals[1]."</td>";
}else{
echo "<td>0</td>";
}
$ vals是数组,键([1],[2]等)是获取我使用array_count_values()时创建的整数。
if (file_exists("../Question1.txt") && file_exists("../Question10.txt")){
$files = "../Question2.txt";
$lines=(file($files));
$trimmed_array=array_map('trim',$lines);
$vals = array_count_values($trimmed_array);
foreach($vals as $answers => $keys){
}
if(isset($vals[1])){
echo "<td>".$vals[1]."</td>";
}else{
echo "<td>0</td>";
}
if(isset($vals[2])){
echo "<td>".$vals[2]."</td>";
}else{
echo "<td>0</td>";
}
etc...
}else {
echo ' <td>-</td><td>-</td><td>-</td><td>-</td><td>-</td>';
}