Also, ich habe ein zweidimensionales Array:Dynamische Zählung basierend auf dem Wert
$fruits = array
(
array('fruit' => 'Apple', 'rating' => '2'),
array('fruit' => 'Pear', 'rating' => '3'),
array('fruit' => 'Peach', 'rating' => '2'),
array('fruit' => 'Strawberry', 'rating' => '2')
);
Ich brauche einen ausdrücklichen Auftrag zu bekommen. In dem obigen Beispiel möchte ich daher eine table
anzeigen, die drei col
s -> fruit, rating und rank enthält. Wenn es eine Gleichheit in den Bewertungen gibt, dann möchte ich radio buttons
in der dritten Spalte mit den möglichen Rängen haben. Das ist, was ich meine:
Bisher habe ich das unten Stück Code habe, die nur in der Lage zu sagen, ob es eine andere Frucht mit dem gleichen Rating ist, und wenn ja, es zeigt Radios 1 bis 4 . Dies ist eine sehr unfreundliche Lösung. Also wie kann ich es leicht aufbauen unter Berücksichtigung der Tatsache, dass die Bewertung alles sein kann. Für z.B. 2-2-3-3 in diesem Fall brauche ich Radios 1-2,1-2 und 3-4,3-4.
PHP:
echo "<table><tr><td>fruit</td><td>rating</td><td>rank</td></tr>";
for($i = 0; $i < count($fruits); ++$i) {
echo "<tr><td>".$fruits[$i]['fruit']."</td><td>".$fruits[$i]['rating']."</td><td>";
for($j = 0; $j < count($fruits); ++$j) {
if($i != $j) {
if($fruits[$i]['rating'] == $fruits[$j]['rating']) {
echo "<input type=\"radio\" name=\"".$fruits[$i]['fruit']."\" value=\"1\">1
<input type=\"radio\" name=\"".$fruits[$i]['fruit']."\" value=\"2\">2
<input type=\"radio\" name=\"".$fruits[$i]['fruit']."\" value=\"3\">3
<input type=\"radio\" name=\"".$fruits[$i]['fruit']."\" value=\"4\">4"
break;
}
else if ($j == 3)
{
echo "<b>".($i+1)."</b></td></tr>";
}
}
else if ($j==3)
{
echo "<b>".($i+1)."</b></td></tr>";
}
}
}
echo "</table>";
Grundsätzlich muss ich pro Bewertung eine Zählung haben für alle Fälle gibt es eine Gleichheit ist.
P. S .: Das Array ist bereits DESC
basierend auf den Bewertungen sortiert, deshalb ($i+1)
Werke in meinem Code.
ist fast perfekt. Alles, was ich ersetzte, ist 'echo $ fruit ['rating'];' wenn es das einzige in der Reihe ist, das echo ($ i + 1); 'so dass es nicht die 'Bewertung', sondern die richtige 'Rangfolge zeigt '. – fishmong3r