Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengubah Suai Objek Tatasusunan Semasa Gelung Foreach Tidak Memusnahkan dalam PHP?

Bagaimanakah Saya Boleh Mengubah Suai Objek Tatasusunan Semasa Gelung Foreach Tidak Memusnahkan dalam PHP?

Barbara Streisand
Lepaskan: 2024-12-15 03:20:09
asal
652 orang telah melayarinya

How Can I Modify Array Objects During a Non-Destructive Foreach Loop in PHP?

Lelaran Gelung Tidak Memusnahkan dengan Nilai Objek Diubahsuai

Apabila melelaran melalui tatasusunan menggunakan gelung foreach, mungkin wajar untuk mengubah suai objek semasa dikendalikan dalam gelung. Ini boleh dicapai menggunakan dua pendekatan.

Pendekatan 1: Menggunakan Array Key Preserving

Untuk mengekalkan kunci objek semasa, gunakan sintaks berikut:

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

Di sini, kunci ($kunci) disimpan dan digunakan untuk mengemas kini nilai yang sepadan dalam $soalan utama pembolehubah.

Pendekatan 2: Menggunakan Tugasan Rujukan

Sebagai alternatif, menambah & pada nilai gelung foreach akan mengemas kini pembolehubah $questions secara langsung:

foreach($questions as &$question){
Salin selepas log masuk

Pendekatan ini mengubah suai nilai dengan rujukan, memastikan tatasusunan $questions dikemas kini. Walau bagaimanapun, pendekatan pertama biasanya disyorkan.

Nota Dokumentasi PHP:

Menurut dokumentasi foreach PHP:

"Agar dapat untuk mengubah suai terus elemen tatasusunan dalam gelung mendahului $value dengan &

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Suai Objek Tatasusunan Semasa Gelung Foreach Tidak Memusnahkan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan