Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mehrdimensionale Arrays per POST in PHP effizient übermitteln und abrufen?

Wie kann ich mehrdimensionale Arrays per POST in PHP effizient übermitteln und abrufen?

DDD
DDDOriginal
2024-12-03 16:37:16247Durchsuche

How to Efficiently Submit and Retrieve Multidimensional Arrays via POST in PHP?

Senden mehrdimensionaler Arrays per POST mit PHP

In vielen Szenarien stoßen wir auf Formulare mit unterschiedlicher Anzahl von Zeilen und vordefinierten Spalten. Benutzer können nach Bedarf beliebig Zeilen hinzufügen. Es ist von entscheidender Bedeutung, zu verstehen, wie diese dynamischen Eingaben in einem verwendbaren Format erfasst werden.

Stellen Sie sich ein Formular mit Spalten für Produktattribute wie Durchmesser oben, Durchmesser unten, Stoff, Farbe und Menge vor. Während die Anzahl der Spalten konstant bleibt, ist die Anzahl der Zeilen dynamisch.

Erstellen des Formulars

Um eine dynamische Anzahl von Zeilen zu berücksichtigen, weisen wir jedem Feld in jeder Zeile mithilfe von eindeutige Namen zu Array-Index. Zum Beispiel:

<input name="topdiameter[0]" type="text">

Dies führt zu HTML, das so aussieht:


  <input name="topdiameter[0]" type="text">

Abrufen der Eingabedaten

Nach der Formularübermittlung sind die Eingabedaten über zugänglich das $_POST Superglobal. Es erscheint als Array von Arrays:

$_POST['topdiameter'] = array('first value', 'second value');
$_POST['bottomdiameter'] = array('first value', 'second value');

Verwendung eines mehrdimensionalen Arrays

Anstatt mehrere eindimensionale Arrays zu verwenden, ist es effizienter, ein einzelnes zweidimensionales Array zu verwenden. Um dies zu erreichen, ändern wir das Formularnamenformat:

name="diameters[0][top]"
name="diameters[0][bottom]"
name="diameters[1][top]"
name="diameters[1][bottom]"
...

Mit diesem überarbeiteten Format können wir die Werte jetzt einfach durchlaufen:

if (isset($_POST['diameters'])) {
    echo '<table>';
    foreach ($_POST['diameters'] as $diam) {
        // Here, $diam['top'] and $diam['bottom'] are accessible
        echo '<tr>';
        echo '  <td>', $diam['top'], '</td>';
        echo '  <td>', $diam['bottom'], '</td>';
        echo '</tr>';
    }
    echo '</table>';
}

Das obige ist der detaillierte Inhalt vonWie kann ich mehrdimensionale Arrays per POST in PHP effizient übermitteln und abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn