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

PHP改造年份下拉函数 实现学年学期选项适配存库要求

PHP下拉选项函数改造方案

核心改造不需要调整原有函数的整体框架,只需要把原来单年生成1个选项的循环逻辑,改成单年生成2个对应后缀的选项,分别匹配入库值和展示文本的格式要求即可,完全兼容原有上层调用逻辑。

改造后完整代码

public function dsYearOfEntry() {
    $t = date("Y");
    $ds = null;
    // 保留原有默认提示选中项
    $ds[""] = array("value"=>"CHOOSE","selected"=>true);
    $t = $t + 1;
    // 遍历30个年份,每个年份生成2个对应选项
    for($i = 0; $i < 30; $i++){
        $currentYear = $t - $i;
        // 先插入后缀为2的选项:键为入库实际值,值为下拉展示文本
        $ds[$currentYear . '2'] = $currentYear . '-2';
        // 再插入后缀为1的选项,保证同一年-2排在-1前面
        $ds[$currentYear . '1'] = $currentYear . '-1';
    }       
    // 保留原有空数据兜底逻辑
    $ds == null ? $ds = array("" => "Not Available") : "";
    return $ds;
}

关键逻辑说明

  • 顺序完全匹配需求:每个年份遍历过程中先处理后缀2、再处理后缀1,整体按年份从新到旧递减,最终下拉展示顺序就是2023-2、2023-1、2022-2、2022-1……的效果
  • 入库值和展示文本自动对应:数组键名直接使用年份+后缀的无横杠格式(比如20232),提交表单时可以直接拿这个值存入数据库;数组值为带横杠的展示格式,前端渲染下拉时直接取用即可,不需要额外做字符串转换
  • 兼容原有逻辑:保留了原函数的默认选中提示、30年的时间跨度、无数据时的兜底返回,原来调用这个函数的业务代码不需要做任何修改

如果后续需要调整后缀规则(比如增加更多学期/期数后缀),只需要在循环内对应增加条目即可,不需要调整整体结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:09:17