変更されたオブジェクト値による非破壊的なループ反復
foreach ループを使用して配列を反復処理する場合、ループ内で処理されている現在のオブジェクト。これは 2 つの方法を使用して実現できます。
方法 1: 配列キーの保持を使用する
現在のオブジェクトのキーを保持するには、次の構文を使用します。
foreach($questions as $key => $question){ $questions[$key]['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); }
ここでは、キー ($key) が保存され、メインの $questions の対応する値を更新するために使用されます。 variable.
アプローチ 2: 参照割り当てを使用する
または、foreach ループ値に & を追加すると、$questions 変数が直接更新されます:
foreach($questions as &$question){
このアプローチでは、$questions 配列を更新したままにして、参照によって値を変更します。ただし、通常は最初のアプローチが推奨されます。
PHP ドキュメントのメモ:
PHP foreach ドキュメントによると:
ループ内で配列要素を直接変更するには、$value の前に & を付けます。その場合、値は参照によって割り当てられます。"
以上がPHP の非破壊 Foreach ループ中に配列オブジェクトを変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。