当前位置: 首页 > news >正文

PHP 多维数组中按唯一 range 值映射为从 0 开始的连续序号

本文介绍如何将多维数组中重复出现的 range 字段值,统一替换为基于其首次出现顺序的、从 0 开始的整数序号(如相同 range → 相同序号),并提供高效、可复用的 PHP 实现方案。 本文介绍如何将多维数组中重复出现的 `range` 字段值,统一替换为基于其首次出现顺序的、从 0 开始的整数序号(如相同 range → 相同序号),并提供高效、可复用的 php 实现方案。在处理来自数据库查询或 API 响应的多维数组时,常遇到某字段(如 range)存在重复 ID 的情况。但业务逻辑可能要求将其转换为「语义化序号」——即每个唯一 range 值对应一个从 0 开始递增的整数索引,且相同原始值必须映射到同一序号(保持一致性)。这本质上是一个分组编号(group numbering)问题,而非简单去重或重排键名。核心思路是:先提取所有 range 值 → 去重并保留首次出现顺序 → 重索引为连续数字 → 构建值到序号的映射表 → 批量替换原数组。以下是完整、健壮的实现代码:<?php// 示例输入数据$array = [ ['range' => 336, 'year' => 2020, 'month' => 222], ['range' => 336, 'year' => 2020, 'month' => 222], ['range' => 390, 'year' => 2020, 'month' => 222], ['range' => 390, 'year' => 2021, 'month' => 222],];// 步骤 1:提取所有 range 值,去重并保持原始顺序(array_unique 保留首次出现键)$uniqueRanges = array_unique(array_column($array, 'range'));// 步骤 2:重置键为连续数字索引(0, 1, 2...)$indexedRanges = array_values($uniqueRanges);// 步骤 3:翻转数组,构建 [原始值 => 序号] 映射表$rangeToIndex = array_flip($indexedRanges);// 步骤 4:遍历原数组,用映射表更新 range 字段$result = array_map(function ($item) use ($rangeToIndex) { $item['range'] = $rangeToIndex[$item['range']] ?? 0; // 安全兜底 return $item;}, $array);print_r($result);?>? 输出结果:立即学习“PHP免费学习笔记(深入)”; 腾讯小微 基于微信AI智能对话系统打造的智能语音助手解决方案

http://www.jsqmd.com/news/663623/

相关文章:

  • 2026年热门的数控车铣复合机床优质供应商推荐 - 行业平台推荐
  • 开源 | 储能管理系统(EMS)闭环 -慧知开源充电桩平台
  • 智能代码生成器版本演进全景图(2022–2024核心算法对比白皮书)
  • 手把手教你用Mindie在昇腾Atlas 200I A2上部署DeepSeek-R1模型(含完整配置文件详解)
  • 别再手动调色了!用MATLAB bar函数绘制多组堆叠柱状图的配色自动化技巧
  • Simulink仿真下的自适应巡航控制(ACC)系统建模:速度与间距控制策略探究
  • 从内存窥探到文件解析:深入理解C/C++进制输出的底层逻辑与高级玩法
  • UART模拟LIN从机:中断驱动与状态机实战解析
  • C#怎么实现Swagger文档 C#如何在ASP.NET Core中集成Swagger自动生成API文档【框架】
  • 智能剪辑中的视频处理与特效添加
  • 【2024最硬核工程能力】:为什么头部科技公司正紧急替换CI/CD工具链?答案藏在这7个自愈触发条件与4层语义理解模型中
  • PyTorch炼丹避坑指南:list、numpy、tensor互转时,90%新手会踩的数据类型坑
  • 别再折腾老版本了!PyTorch 1.2+环境下一键搞定Faster R-CNN.pytorch训练(附VOC数据集制作脚本)
  • Gazebo Sim 开源机器人模拟器终极快速入门指南:5分钟开启机器人仿真之旅
  • 代码审查实践
  • 保姆级教程:用SuperPoint官方PyTorch预训练模型快速实现图片特征点匹配(附完整代码)
  • STM32与RT-Thread Nano的轻量级网络栈:LWIP移植实战详解
  • 302.ai 和 ofox.ai 哪个好用?2026 年 AI API 聚合平台实测对比
  • 问界入局豪华超充 云服务调价信号显现 游宝阁用户价值放量 半固态电池与具身智能同步落地
  • NumPy reshape的order参数,搞不清‘C’和‘F’?一个‘拉链’比喻让你秒懂(Python数据处理避坑指南)
  • 【AGI演进生死线】:基于SITS2026实测数据的7维评估矩阵——你的团队已落后第几阶段?
  • 野火指南者(STM32F103)驱动LVGL:从零构建嵌入式GUI显示与触摸交互
  • 手把手教你用STM32F103C8T6打造USB-C接口J-Link OB(原理图解析、固件烧录、SN修改与实战调试)
  • 告别爆显存!用MMsegmentation在RTX 3050Ti上训练耕地分割模型(附完整配置文件)
  • 从零到一:用RPO与RTO构建你的企业灾备蓝图
  • 手把手教你Linux 打包压缩与 gcc 编译详解
  • 企业微信员工长时间未回复如何进行提醒?
  • 全球AGI人才战争白热化:美国H-1B AGI专项签证配额暴涨400%,中国“珠峰计划”首批217名特聘研究员名单首次内部流出
  • CSS如何实现导航栏下划线随鼠标移动_利用-hover伪类与过渡动画控制
  • 企业微信如何给每个群群发不同的内容?