开发者社区> 问答> 正文

PHP-在foreach循环中修改当前对象

我想知道是否可以编辑foreach循环中正在处理的当前对象

我正在处理一系列对象$questions,我想遍历数据库中查找与该问题对象相关的答案。因此,对于每一个问题去获取答案对象,并更新当前$question 里面我的foreach循环,这样我可以输出/别处过程。

foreach($questions as $question){ $question['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); } 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 10:57:05 569 0
1 条回答
写回答
取消 提交回答
  • 有两种方法

    foreach($questions as $key => $question){ $questions[$key]['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); } 这样可以保存密钥,因此您可以在主$questions变量中再次对其进行更新

    要么

    foreach($questions as &$question){ 添加&会保持$questions更新。但我想说,即使这样比较短,也建议使用第一个(请参阅Paystey的评论)

    根据PHP foreach文档:

    为了能够直接修改循环内的数组元素,在$ value之前加上&。在这种情况下,该值将通过引用分配。

    2020-02-08 10:57:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载