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

PHP中如何将索引变量$i代入其他变量实现循环赋值?

解决方案

要实现循环生成动态命名的变量并完成赋值,你可以利用PHP的可变变量特性,通过字符串拼接的方式构建变量名并引用对应变量。修改后的代码如下:

$no_col = 10;
for ($i = 1; $i <= $no_col; $i++) {
    // 动态获取$start1、$start2...变量的值
    $start_var = ${'start' . $i};
    // 生成$start_year_1、$start_year_2...变量并赋值
    ${'start_year_' . $i} = date('Y', strtotime($start_var));
    // 生成$start_month_1、$start_month_2...变量并赋值
    ${'start_month_' . $i} = date('m', strtotime($start_var));
}

关键说明:

  • ${'start' . $i}:通过拼接字符串"start"和循环变量$i,动态引用$start1、$start2等目标变量。
  • ${'start_year_' . $i}:同样通过字符串拼接构建变量名,实现动态赋值,最终生成$start_year_1、$start_year_2这类符合需求的变量。
  • 提取$start_var是为了避免重复调用strtotime,优化代码执行效率。

更规范的替代方案(推荐):

可变变量虽然能解决问题,但用数组管理这类批量变量会更易维护和阅读,示例如下:

$no_col = 10;
$start_dates = [];
for ($i = 1; $i <= $no_col; $i++) {
    $start_var = ${'start' . $i};
    $start_dates[$i] = [
        'year' => date('Y', strtotime($start_var)),
        'month' => date('m', strtotime($start_var))
    ];
}

// 调用示例:获取第2个日期的年份
// echo $start_dates[2]['year'];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:50:54