Mengekalkan Nilai Tatasusunan Asal Semasa Mengulang dengan foreach dalam PHP
Apabila bekerja dengan tatasusunan berbilang dimensi dalam PHP, mungkin sukar untuk mengubah suai yang asal tatasusunan sambil mengulanginya menggunakan gelung foreach. Soalan ini membincangkan isu ini, di mana matlamatnya adalah untuk menukar kunci nilai dalam tatasusunan bersarang.
Dalam contoh yang diberikan, mengubah suai tatasusunan asal menggunakan $fields[$field]['value'] tidak bekerja seperti yang diharapkan. Isu ini timbul kerana gelung foreach PHP lulus nilai dengan rujukan untuk tatasusunan (tetapi bukan objek). Ini bermakna membuat perubahan pada pembolehubah $field tidak akan menjejaskan tatasusunan asal.
Untuk menyelesaikan masalah ini, pendekatan yang disyorkan ialah menggunakan kekunci tatasusunan semasa gelung. Kod dikemas kini yang disediakan dalam jawapan menunjukkan ini:
foreach ($fields as $key => $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$key]['value'] = "Some error"; } }
Dalam kod ini, $key mewakili kunci elemen tatasusunan semasa. Dengan menggunakan $fields[$key], kami mengakses tatasusunan asal dan mengubah suai nilai yang betul. Ini memastikan bahawa perubahan yang dibuat dalam gelung ditunjukkan dalam tatasusunan asal yang dikembalikan oleh fungsi checkForm.
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Suai Nilai Tatasusunan Asal Apabila Menggunakan Gelung foreach dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!