Rumah >pembangunan bahagian belakang >tutorial php >Bolehkah Anda Mengubah Suai Objek Tatasusunan Dalam Gelung Foreach PHP?

Bolehkah Anda Mengubah Suai Objek Tatasusunan Dalam Gelung Foreach PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-01 09:59:09689semak imbas

Can You Modify Array Objects Within a PHP Foreach Loop?

Mengubah Suai Nilai Tatasusunan dalam Gelung Foreach

Dalam PHP, anda sering bekerja dengan tatasusunan objek dan ingin melaksanakan operasi pada setiap objek semasa gelung foreach. Satu tugas biasa ialah mengambil data tambahan untuk setiap objek dan mengemas kini sifatnya.

Adakah Kemungkinan untuk Mengubah Suai Objek dalam Gelung Foreach?

Ya, anda boleh mengubah suai objek semasa di dalam gelung foreach. Terdapat dua pendekatan:

1. Menggunakan Pemeliharaan Kunci Tatasusunan:

foreach($questions as $key => $question){
    $questions[$key]['answers'] = $answers_model->get_answers_by_question_id($question['question_id']);
}

Kaedah ini mengekalkan kunci tatasusunan, membolehkan anda mengemas kini tatasusunan $questions asal.

2. Menggunakan Tugasan Rujukan:

foreach($questions as &$question){

Menambah & sebelum $soalan mencipta tugasan rujukan. Ini bermakna bahawa sebarang perubahan yang dibuat kepada $soalan dalam gelung akan ditunjukkan dalam tatasusunan $soalan asal.

Pendekatan Manakah yang Disyorkan?

Sementara pendekatan tugasan rujukan adalah lebih ringkas, biasanya disyorkan untuk menggunakan kaedah pemeliharaan kunci tatasusunan. Ini kerana ia memberikan kawalan eksplisit ke atas elemen tatasusunan yang diubah suai.

Atas ialah kandungan terperinci Bolehkah Anda Mengubah Suai Objek Tatasusunan Dalam Gelung Foreach PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn