You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP遍历数组赋值后仅返回最后一个元素是什么原因?

问题原因

你的代码运行后仅能拿到最后一个演员元素,核心是循环赋值逻辑错误导致的:

  • 循环过程中你始终在对$actor['name']这同一个固定键进行赋值操作,每一轮新的赋值都会直接覆盖上一轮存入的值,等循环执行到最后一次时,这个键自然只会保留最后一个演员Actor4的值
  • 你没有将每一轮循环生成的演员数据追加到结果集合中,始终在修改同一个数组变量的内容,自然无法保存所有演员信息
修复方案

根据你的使用场景,可以选择两种常见写法:

场景1:仅需要保存所有演员的姓名,生成一维索引数组

$actors = explode(",",$this->input->post('movie_actors', true));
$actorList = [];
foreach ($actors as $value) {
    // 用[]语法将当前演员名追加到数组末尾,不会覆盖已有内容
    $actorList[] = $value;    
}

场景2:需要为每个演员保留键名结构,方便后续扩展其他字段,生成二维数组

$actors = explode(",",$this->input->post('movie_actors', true));
$actorList = [];
foreach ($actors as $value) {
    $actorList[] = [
        'name' => $value
    ];    
}

内容的提问来源于stack exchange,提问作者Andrei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 19:54:03