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

如何按办公室编号对多维数组进行分组与排序

秋萱君_6000

秋萱君_6000

发布时间:2026-09-22 09:02:20

|

180人浏览过

|

来源于php中文网

原创

如何按办公室编号对多维数组进行分组与排序

本文介绍如何将嵌套数组中各公司对应的办公室编号(如 n1、n32、n40)提取出来,按编号分组聚合,并支持后续按编号自然/字典序排序,最终形成以办公室编号为键、公司名与金额映射为值的结构化数组。

本文介绍如何将嵌套数组中各公司对应的办公室编号(如 n1、n32、n40)提取出来,按编号分组聚合,并支持后续按编号自然/字典序排序,最终形成以办公室编号为键、公司名与金额映射为值的结构化数组。

在处理企业数据时,常需按统一维度(如办公室编号)重新组织分散在多个记录中的信息。原始数据中,每个公司('Company')拥有一个 offic 子数组,其键为办公室编号(如 'N40')、值为对应金额(如 '4000$')。目标是按办公室编号归类所有公司及其金额,并确保结果可进一步排序。

✅ 正确实现思路:先重组,再排序

直接对子数组调用 uksort()sort() 无效,是因为这些函数作用于单个数组,而我们需要的是跨公司、按键(office key)横向聚合。正确做法是:

  1. 遍历所有公司记录
  2. 对每个公司的 offic 数组,逐项提取 key => value
  3. 以 office key(如 'N40')为新数组主键,将 ['Company' => 'amount'] 追加到对应键下(注意使用 []= 实现多值累积)。

以下是完整可运行代码:

<?php
$Array = [
    [
        'Company' => 'Lotos',
        'offic' => [
            'N40' => '4000$',
            'N32' => '1000$',
        ]
    ],
    [
        'Company' => 'Lump',
        'offic' => [
            'N32' => '7000$',
            'N1'  => '3400$',
            'N40' => '1000$',
        ]
    ]
];

// 步骤1:按 office key 分组聚合
$newArray = [];
foreach ($Array as $item) {
    foreach ($item['offic'] as $officKey => $officValue) {
        // 确保 $newArray[$officKey] 是数组,然后追加 [公司 => 金额]
        $newArray[$officKey][$item['Company']] = $officValue;
    }
}

// 步骤2:按 office 编号排序(自然排序更符合 N1/N32/N40 的语义)
uksort($newArray, function($a, $b) {
    return strnatcmp($a, $b); // 支持 N1 < N32 < N40
});

// 输出验证
var_dump($newArray);
?>

输出示例

array(3) {
  ["N1"]=>
  array(1) {
    ["Lump"]=> string(6) "3400$"
  }
  ["N32"]=>
  array(2) {
    ["Lotos"]=> string(6) "1000$"
    ["Lump"]=>  string(6) "7000$"
  }
  ["N40"]=>
  array(2) {
    ["Lotos"]=> string(6) "4000$"
    ["Lump"]=>  string(6) "1000$"
  }
}

⚠️ 注意事项

  • 键名必须加引号:原始示例中 N40 => '4000$' 是非法 PHP 语法(未加引号的裸标识符),应写为 'N40' => '4000$',否则会触发 Parse error
  • 避免覆盖同公司重复 office:当前逻辑允许多个公司拥有相同 office 编号;若某公司出现多次相同 office,后赋值会覆盖前值;
  • 金额格式处理:若需数值计算(如求和),建议在聚合后用 floatval(str_replace(['$', '%'], '', $value)) 清洗;
  • 性能提示:对于超大数据集,可考虑使用 array_reduce 替代嵌套 foreach,但可读性略低。

该方案清晰分离了「数据重组」与「键排序」两个关注点,结构健壮、易于扩展(例如添加去重、求和、过滤等后续操作),是处理此类横向维度聚合任务的标准实践。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

豆包大模型

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

WorkBuddy

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

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

LibLibAI
LibLibAI Hot

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

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

DeepSeek

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

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

相关专题

更多
sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

1098

2023.09.04

php中foreach用法
php中foreach用法

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

698

2025.12.04

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

20

2026.09.21

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

0

2026.09.21

NumPy矩阵运算与线性代数计算
NumPy矩阵运算与线性代数计算

本专题整理 NumPy 矩阵运算与线性代数计算相关教程,覆盖矩阵乘法、dot 与 @ 运算符、逆矩阵、行列式、特征值与特征向量、SVD、线性方程组、欧氏距离、矩阵分解和大规模矩阵性能优化等内容,帮助读者掌握 np.linalg 与矩阵计算实战。

0

2026.09.21

NumPy广播机制数学运算与统计分析
NumPy广播机制数学运算与统计分析

本专题整理 NumPy 广播机制、数组数学运算与统计分析相关教程,覆盖广播规则、维度对齐、矩阵与数组加减除法、向量化计算、均值方差、分位数、中位数、直方图和 unique 频次统计等场景,帮助读者掌握 ndarray 高效计算与统计处理方法。

0

2026.09.21

NumPy数组创建索引切片与数据选择
NumPy数组创建索引切片与数据选择

本专题整理 NumPy 数组创建、索引、切片与数据选择相关教程,覆盖 np.array、zeros/ones、多维数组形状、基础切片、花式索引、布尔索引、条件筛选、视图与副本等常用场景,帮助读者系统掌握 ndarray 数据构造与高效提取方法。

0

2026.09.21

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

40

2026.09.20

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

0

2026.09.20

热门下载

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

精品课程

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

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