我正在计算各种足球运动员的传球评分。我有一个.txt文件,我从中提取信息。
while($line = fgetcsv($fp, 255, ',')){
$rate = round(calcPR($line),2);
$rating[$line[0]] = $rate;
} return $rating;
这是我的功能部分,我使用$ fp从我的.txt文件中读取,这是我尝试显示数据的地方,但在我尝试显示数据之前我试图将数据分成好的,好的,平庸的和差的通过率。
对于一个很好的评级,他们需要超过95,所以我有:
$grtRating = array_filter($rating,function(){
return $rating > 95;
});
我的其余代码对于良好,平庸和差劲看起来大致相同,但标准不同。如何让这个$ grtRating数组只存储95以上的分数?
目前,当我运行程序时,它基本上忽略了操作员并显示所有评级,无论多低。
更新: $ poorRating数组的输出:(这是一切< 86)
Array ( [Cody Kessler] => 85.91 [Kirk Cousins] => 82.34 [Jacoby Brissett] => 81.68 [Ryan Tannehill] => 81.2 [Tyrod Taylor] => 79.29 [Ben Roethlisberger] => 77.49 [Shaun Hill] => 77.32 [Carson Palmer] => 74.79 [Jameis Winston] => 73.93 [Marcus Mariota] => 73.06 [Joe Flacco] => 71.77 [Cam Newton] => 70.32 [Josh McCown] => 70.25 [Trevone Boykin] => 69.2 [Jay Cutler] => 68.46 [Blake Bortles] => 67.13 [Brock Osweiler] => 66.1 [Blaine Gabbert] => 63.35 [Case Keenum] => 60.63 [Ryan Fitzpatrick] => 48.93 [Robert Griffin III] => 48.54 [Drew Stanton] => 34.36 [Kellen Clemens] => 2.07 )
我认为问题可能出在我输出代码的方式上。我的链接在无序列表中。
以下是一个例子:
<a href='pr.php?action=all'>All Ratings</a>
我有一个pr.php?action=great',
pr.php?action = good&#39;,pr.php?action=mediocre', and
pr.php?action =&#39; poor&#39;。
以下是我输出所有内容的方法,问题是我怎么做的?
$mode = 'all';
if ($_GET['action'] == 'great') $mode = 'great';
if ($_GET['action'] == 'good') $mode = 'good';
if ($_GET['action'] == 'mediocre') $mode = 'mediocre';
if ($_GET['action'] == 'poor') $mode = 'poor';
if($mode == 'great'){
foreach($greatRating as $name=>$pr){
echo "<tr><td>{$name}</td><td>{$pr}</td></tr>\n";
}
}
if($mode == 'good'){
foreach($goodRating as $name=>$pr){
echo "<tr><td>{$name}</td><td>{$pr}</td></tr>\n";
}
}
if($mode == 'mediocre'){
foreach($mediocreRating as $name=>$pr){
echo "<tr><td>{$name}</td><td>{$pr}</td></tr>\n";
}
}
if($mode == 'poor'){
foreach($poorRating as $name=>$pr){
echo "<tr><td>{$name}</td><td>{$pr}</td></tr>\n";
}
}
if($mode = 'all'){
foreach($rating as $name=>$pr){
echo "<tr><td>{$name}</td><td>{$pr}</td></tr>\n";
}
}
echo "</table></div>\n";
}
请你帮我弄清楚我的错误在哪里?
答案 0 :(得分:1)
替换
$grtRating = array_filter($rating,function(){
return $rating > 95;
});
与
$grtRating = array_filter($rating, function($val) {
return $val > 95;
});
在第一个中,您没有包含回调参数,该参数包含从数组的每次迭代传递的值,这将是您在评估中使用的值。