Ich arbeite an der Berechnung der Bestehensquoten von verschiedenen Fußballern. Ich habe eine TXT-Datei, von der ich die Informationen abrufe.Große assoziative Array in kleinere assoziative Arrays mit Array_filter
while($line = fgetcsv($fp, 255, ',')){
$rate = round(calcPR($line),2);
$rating[$line[0]] = $rate;
} return $rating;
Das ist der Teil meiner Funktion war, wo ich einen $ fp bin mit meiner .txt-Datei zu lesen und hier ist, wo ich versuche, um die Daten anzuzeigen, aber bevor ich versuche, meine Daten anzuzeigen Ich versuche, die Daten in Pass-Ratings aufzuteilen, die groß, gut, mittelmäßig und schlecht sind.
Für einen großen Rating, müssen sie über 95 sein, so habe ich:
$grtRating = array_filter($rating,function(){
return $rating > 95;
});
Der Rest meines Codes für gut, mittelmäßig und schlecht sieht nur etwa die gleichen, aber mit unterschiedlichen Kriterien. Wie kann ich dieses $ grtRating Array nur die Scores erhalten, die über 95 liegen?
Zur Zeit, wenn ich mein Programm starte, ignoriert es im Grunde die Bediener und zeigt alle Bewertungen an, egal wie niedrig.
UPDATE: Ausgabe von $ poorRating Array: (Das ist alles < 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)
Ich denke, das Problem dann, wie ich Ausgabe meines Code sein könnte. Ich habe meine Links in einer ungeordneten Liste. Hier
ein Beispiel:
<a href='pr.php?action=all'>All Ratings</a>
Ich habe eine pr.php?action=great',
pr.php action = gut‘, pr.php?action=mediocre', and
pr.php action =? 'Schlecht'?.
Hier ist, wie ich alles ausgeben, ist das Problem, wie ich das mache?
$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";
}
Würden Sie mir bitte helfen, herauszufinden, wo mein Fehler ist?
Ihr '$ greatRating' sollte' $ grtRating' sein –
Ich habe es jetzt auf '$ grtRating' umgestellt und es funktioniert immer noch nicht. EDIT: Nur Spaß, das war alles, ich fühle mich wie ein Idiot. Ich werde deine Antwort als richtig markieren! – CSGuy94