使用修改的物件值進行非破壞性循環迭代
使用foreach 循環迭代數組時,可能需要修改循環內正在處理的當前對象。這可以使用兩種方法來實現。
方法1:使用陣列金鑰保留
要保留目前物件的金鑰,請使用下列語法:
foreach($questions as $key => $question){ $questions[$key]['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); }
這裡儲存了key($key),用於更新主$questions中對應的值
方法2:使用引用賦值
或者,將& 加到foreach 循環值將直接更新$questions 變數:
foreach($questions as &$question){
此方法透過引用修改值,保持$questions 數組更新。不過,一般建議採用第一種方法。
PHP 文件說明:
根據PHP foreach 文件:
「為了能夠在迴圈中直接修改陣列元素在$value 之前加上& 。
以上是如何在 PHP 中的非破壞性 Foreach 迴圈期間修改數組物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!