質問:
内で処理されている現在のオブジェクトを編集することは可能ですか? foreachループ?
コンテキスト:
データベース内に、関連付けられた回答を含むオブジェクトの配列 ($questions) があります。ループ反復中に質問オブジェクトごとにこれらの回答を取得しようとしています。
解決策:
次のいずれかを使用して、foreach ループ内で現在のオブジェクトを変更できます。次のメソッドのいずれか:
キー割り当て:
foreach($questions as $key => $question){ $questions[$key]['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); }
このメソッドは配列キーを保持するため、値を直接更新できます。
参照割り当て:
foreach($questions as &$question){ $question['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); }
変数名が渡す前にアンパサンド (&) を追加します。オブジェクトへの参照を使用して、ループ内で直接変更できるようにします。
推奨事項:
参照の割り当て方法は簡潔ですが、キーの割り当て方法は多次元配列での予測可能な動作が保証されるため、通常はこれをお勧めします。
以上がForeach ループ内で配列オブジェクトを直接変更できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。