Moin!
Ich habe folgenden Test-Code für die Ausgabe geschrieben:
Den Code kann man schon mal recht einfach optimieren, indem man $_POST['ID'] weglässt, und direkt die Variable $i benutzt, die die Schleife anlegt.
<form action="test.php" method="post">
<table>
<?php
for ($i=1; $i<5; $i++) {// Das hier ist sinnlos: $_POST['ID'] = $i;
echo "<tr>";
echo "<td>";
echo "ID: $i ";
echo "Bewertung: <input type="checkbox" name="ImgRating[".$i."]" value="ImgRatingActivated" />";
echo "Kommentare: <input type="checkbox" name="ImgComments[".$i."]" value="ImgCommentsActivated" />";
echo "Anzeigen: <input type="checkbox" name="ImgView[".$i."]" value="ImgViewActivated" />";
echo "</td>";
echo "</tr>";
}
?>
<tr>
<td>
<input type="submit" name="formUpdateSubmit" value="speichern" />
</td>
</tr>
</table>
</form>
Wenn du hingegen die drei Input-Felder in EINEM gemeinsamen Array als Keys haben willst, wäre folgende Struktur für die Input-Namen besser:
name="img[$i][rating]", name="img[$i][comments]", name="img[$i][view]"
Und dein Code hier wäre dann:
> Der oben ausgegebene Code wird mit folgendem Code ausgewertet:
~~~php
<?php
if (isset($_POST['formUpdateSubmit'])) {
if (is_array($_POST['img'])) {
foreach ($_POST['img'] as $key => $value) {
echo $key;
echo $value['rating'];
echo $value['comments'];
echo $value['view'];
}
}
}
?>
Auf diese Weise ist das Resultat des auswertenden Codes deutlich lesbarer.
Wenn es darum geht, das Array hinterher auch noch in mehreren Arten zu sortieren, ist übrigens die umgekehrte Reihenfolge der Indices besser:
name="img[rating][$i]", name="img[comments][$i]", name="img[view][$i]"
<?php
if (isset($_POST['formUpdateSubmit'])) {
if (is_array($_POST['img'])) {
sort($_POST['img']['rating']); // sortieren nach rating!
// Ausgeben nach Rating
foreach ($_POST['img']['rating'] as $key => $value) {
echo $key;
echo $_POST['img']['rating'][$key];
echo $_POST['img']['comments'][$key];
echo $_POST['img']['view'][$key];
}
// Ausgeben nach View (unsortiert, andere Reihenfolge wie oben)
foreach ($_POST['img']['view'] as $key => $value) {
echo $key;
echo $_POST['img']['rating'][$key];
echo $_POST['img']['comments'][$key];
echo $_POST['img']['view'][$key];
}
}
}
?>
- Sven Rautenberg