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
Barbara Streisandasal
2024-12-15 03:20:09588semak imbas

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']);
}

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){

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!

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