Dalam borang PHP, anda mungkin menghadapi isu di mana anda mempunyai berbilang medan input dengan nama yang serupa, mencipta struktur seperti tatasusunan. Walau bagaimanapun, apabila mengakses nilai ini dalam PHP, anda mungkin perasan bahawa ia dikeluarkan sebagai rentetan tunggal. Artikel ini menangani masalah ini dan menyediakan penyelesaian untuk menukar tatasusunan input kepada tatasusunan PHP yang boleh digunakan.
Untuk menunjukkan masalah, pertimbangkan borang HTML berikut:
<input type="text" name="name[]" /> <input type="text" name="email[]" /> <input type="text" name="name[]" /> <input type="text" name="email[]" /> <input type="text" name="name[]" /> <input type="text" name="email[]" />
Apabila borang ini diserahkan, pembolehubah PHP yang sepadan diisikan sebagai tatasusunan:
$name = $_POST['name']; $email = $_POST['email'];
Walau bagaimanapun, apabila anda cuba untuk mengeluarkan nilai, anda akan melihat bahawa ia dipaparkan sebagai rentetan tunggal:
foreach ($name as $v) { print $v; } foreach ($email as $v) { print $v; }
name1name2name3email1email2email3
Untuk menyelesaikan isu ini, anda boleh mengulangi kedua-dua tatasusunan dan menggabungkan nilai yang sepadan menggunakan fungsi pembantu:
foreach ($name as $key => $n) { print "The name is " . $n . " and email is " . $email[$key] . ", thank you\n"; }
Anda boleh memanjangkan corak ini untuk mengendalikan medan input tambahan:
$location = $_POST['location']; foreach ($name as $key => $n) { print "The name is " . $n . ", email is " . $email[$key] . ", and location is " . $location[$key] . ". Thank you\n"; }
Penyelesaian ini membolehkan anda mengakses nilai input dalam struktur dan boleh diakses cara, membolehkan anda melakukan pemprosesan atau manipulasi selanjutnya mengikut keperluan.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Input Borang Seperti Array dengan betul dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!