Editing Array Values within a Foreach Loop
In PHP, when iterating over an array using a foreach loop, it's possible to modify the current element being processed. This allows us to manipulate the array values during the iteration itself.
To edit the current object within a foreach loop, there are two common approaches:
1. Using Preserving Key
foreach ($questions as $key => $question) { $questions[$key]['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); }
In this approach, we preserve the array keys by utilizing $key => $question. This allows us to update the associated element in the main $questions variable.
2. Using Reference Assignment
foreach ($questions as &$question) { $question['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); }
Here, the & preceding $question indicates reference assignment. This means that the $question variable inside the loop directly modifies the array element.
According to PHP documentation, "In order to be able to directly modify array elements within the loop, precede $value with &. In that case, the value will be assigned by reference."
The above is the detailed content of How Can I Modify Array Values Directly Within a PHP Foreach Loop?. For more information, please follow other related articles on the PHP Chinese website!