讲师中心 微信公众号
AI工具推荐 视频效率加速

如何将数字键数组智能映射为星期简称键数组

千静姑娘_5425

千静姑娘_5425

发布时间:2026-06-02 16:12:24

|

1059人浏览过

|

来源于php中文网

原创

如何将数字键数组智能映射为星期简称键数组

本文介绍一种灵活、健壮的方法,将任意索引(尤其是 0~6 范围内)的 php 数组,按对应关系重映射为以 "sun"/"mon"/…/"sat" 为键的关联数组,支持稀疏索引、跳过无效键,无需严格对齐长度。

本文介绍一种灵活、健壮的方法,将任意索引(尤其是 0~6 范围内)的 php 数组,按对应关系重映射为以 "sun"/"mon"/…/"sat" 为键的关联数组,支持稀疏索引、跳过无效键,无需严格对齐长度。

在实际开发中,我们常遇到需要将数值索引(如代表星期几的 0–6)动态转换为语义化键名(如 "sun"、"mon")的场景。例如,前端传入一个以数字为键的销售数据数组,后端需将其标准化为可读性强的周维度结构。PHP 原生的 array_combine() 要求两个数组长度严格一致且顺序对齐,无法处理稀疏索引(如 [3 => 'melon', 6 => 'banana'])或部分缺失的情况——这正是本问题的核心挑战。

解决思路是:不依赖批量合并,而是遍历原数组,对每个有效数字键查表映射,并跳过越界或非整数键。以下是一个生产就绪的封装函数:

function mapWeekdayKeys(array $input, array $weekdays = [
    'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'
]): array {
    $result = [];
    foreach ($input as $numericKey => $value) {
        // 仅处理合法的整数键(0~6),忽略字符串键、负数、浮点数等
        if (is_int($numericKey) && $numericKey >= 0 && $numericKey < count($weekdays)) {
            $result[$weekdays[$numericKey]] = $value;
        }
    }
    return $result;
}

✅ 使用示例:

// 示例 1:连续索引 0–5
$data1 = [0 => 'melon', 1 => 'apple', 2 => 'orange', 3 => 'orange', 4 => 'kiwi', 5 => 'banana'];
print_r(mapWeekdayKeys($data1));
// 输出: ['sun'=>'melon','mon'=>'apple',...,'fri'=>'banana']

// 示例 3:仅含 5 和 6
$data3 = [5 => 'banana', 6 => 'banana'];
print_r(mapWeekdayKeys($data3));
// 输出: ['fri'=>'banana','sat'=>'banana']

// 示例 4:稀疏索引(3 和 6)
$data4 = [3 => 'melon', 6 => 'banana'];
print_r(mapWeekdayKeys($data4));
// 输出: ['wed'=>'melon','sat'=>'banana']

⚠️ 注意事项:

  • 函数默认支持标准 7 天(0=>sun 至 6=>sat),如需自定义顺序(如周一为第一天),只需传入对应 $weekdays 数组即可;
  • 自动过滤非法键(如 -1、'abc'、7),避免 Notice: Undefined offset 错误;
  • 时间复杂度为 O(n),性能高效,适用于大规模数据;
  • 若需保留原始键顺序(PHP 7.4+),结果数组天然保持插入顺序;旧版本建议配合 ksort() 按星期排序。

该方案摒弃了对数组长度的硬性依赖,以明确的语义逻辑替代“魔法函数”,兼顾鲁棒性与可维护性,是处理此类映射需求的推荐实践。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
switch语句用法
switch语句用法

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

1051

2023.09.21

Java switch的用法
Java switch的用法

Java中的switch语句用于根据不同的条件执行不同的代码块。想了解更多switch的相关内容,可以阅读本专题下面的文章。

1417

2024.03.13

switch语句用法
switch语句用法

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

1051

2023.09.21

Java switch的用法
Java switch的用法

Java中的switch语句用于根据不同的条件执行不同的代码块。想了解更多switch的相关内容,可以阅读本专题下面的文章。

1417

2024.03.13

php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

758

2025.12.04

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

80

2026.10.10

Kratos框架HTTP与gRPC服务开发教程
Kratos框架HTTP与gRPC服务开发教程

本专题围绕Kratos框架双协议服务开发,涵盖HTTP路由与处理器编写、参数获取、gRPC服务实现与客户端调用、metadata上下文传递、encoding编解码注册、统一响应封装、超时控制与流式响应实现方法。

40

2026.10.10

Kratos框架Protobuf接口定义与代码生成合集
Kratos框架Protobuf接口定义与代码生成合集

本专题讲解Kratos框架接口定义体系,涵盖proto编写规范、proto add/client/server生成命令、http注解路由、validate校验、OpenAPI文档生成、跨服务proto复用与兼容性设计。

20

2026.10.10

C++虚函数怎么定义和调用
C++虚函数怎么定义和调用

C++虚函数是实现运行时多态的重要机制。本专题从virtual关键字的基本用法入手,介绍基类与派生类之间的函数重写、基类指针调用派生类方法,以及动态绑定的执行过程,帮助初学者掌握虚函数的核心语法。

40

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn