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

PHP多维数组操作与聚合分析

PHP多维数组操作与聚合分析

PHP的数组可以嵌套任意维度。多维数组在处理复杂数据结构时很有用。今天说说多维数组的常用操作。

创建和访问多维数组。

```php
$data = [
'users' => [
['id' => 1, 'name' => '张三', 'scores' => [85, 92, 78]],
['id' => 2, 'name' => '李四', 'scores' => [90, 88, 95]],
],
];

echo $data['users'][0]['name'] . "\n";
echo $data['users'][0]['scores'][0] . "\n";

// 添加数据
$data['users'][] = ['id' => 3, 'name' => '王五', 'scores' => [70, 75, 80]];
?>

array_column提取特定列。

```php
$users = [
['id' => 1, 'name' => '张三', 'age' => 28],
['id' => 2, 'name' => '李四', 'age' => 35],
['id' => 3, 'name' => '王五', 'age' => 22],
];

$names = array_column($users, 'name');
print_r($names);

$nameMap = array_column($users, 'name', 'id');
print_r($nameMap);
?>

array_map批量处理。

```php
$prices = [100, 200, 300];
$quantities = [2, 3, 1];
$totals = array_map(fn($p, $q) => $p * $q, $prices, $quantities);
print_r($totals);
?>

array_filter过滤。

```php
$numbers = [1, 2, 3, 4, 5, 6];
$evens = array_filter($numbers, fn($n) => $n % 2 === 0);
print_r($evens);

$filtered = array_filter($users, fn($u) => $u['age'] > 25);
print_r($filtered);
?>

array_reduce聚合。

```php
$orderAmounts = [100, 250, 80, 450, 200];
$total = array_reduce($orderAmounts, fn($c, $v) => $c + $v, 0);
echo "总计: $total\n";

$items = [
['id' => 1, 'amount' => 100, 'status' => 'paid'],
['id' => 2, 'amount' => 250, 'status' => 'pending'],
['id' => 3, 'amount' => 80, 'status' => 'paid'],
];

$stats = array_reduce($items, function ($carry, $item) {
$carry[$item['status']] = ($carry[$item['status']] ?? 0) + 1;
return $carry;
}, []);
print_r($stats);
?>

多维数组排序。

```php
$products = [
['name' => '商品A', 'price' => 100, 'sales' => 50],
['name' => '商品B', 'price' => 200, 'sales' => 30],
['name' => '商品C', 'price' => 150, 'sales' => 80],
];

usort($products, fn($a, $b) => $b['sales'] <=> $a['sales']);
print_r($products);

// 多字段排序
usort($products, function ($a, $b) {
if ($a['sales'] === $b['sales']) return $a['price'] <=> $b['price'];
return $b['sales'] <=> $a['sales'];
});
?>

PHP的数组函数有两百多个,常用的就二三十个。array_map、array_filter、array_reduce是最强大的三个函数。array_column、array_chunk、array_slice在数据分片时很有用。用好这些函数,很多需要写循环的场景一行代码就搞定了

http://www.zskr.cn/news/1472545.html

相关文章:

  • Chromatic:如何像外科手术一样精准修改Chromium/V8应用?
  • 算法复杂度的统计特征与实验验证的技术8
  • 保定 8 区县全套文案(全区统一固定标题:2026 上海防水补漏 + 瓷砖空鼓修复推荐,苏易修缮本土直营,老城老房漏水、瓷砖翘边拱起就近微创修) - 苏易修缮
  • 告别理论!用Proteus仿真直观理解PID算法:以51单片机温控为例
  • 创客匠人AI智能体:知识付费的效率革命与未来图景
  • 别再只用它开空调了!深度挖掘涂鸦万能红外遥控器的DIY模式:手把手教你学习并控制家里所有红外设备
  • 【工具推荐】手机上直接查看 CAN Log!iOS App「CANviewer」—— 汽车工程师的随身 CAN 分析工具
  • 基于 S7-1200 的隧道综合监控系统模块化 PLC 编程设计
  • 从“彩票假设”到智能体学习:深度网络剪枝的前沿玩法与未来猜想
  • 校园资源整合视角下大学生创业者的多元盈利模式探索
  • 3步快速上手:用StreamFX插件让OBS直播画面瞬间升级
  • python实战实例:杨辉三角
  • 2026年6个字体下载网站推荐,字体资源再也不怕不够
  • 从V-REP到CoppeliaSim 4.9.0:一个机器人仿真软件的版本变迁与安装避坑全记录
  • AI写标书工具软件:五维度技术架构深度拆解
  • 主流多 AI 聚合工具横向实测:程序员编码场景全维度对比
  • PyTorch版Informer时间序列预测代码包,含训练推理全流程与可视化结构图
  • 2026最新诚信优选长沙市黄金回收白银回收铂金回收彩金回收高口碑靠谱门店TOP5权威排行榜+联系方式推荐 - 前途无量YY
  • 告别STM32!用NVIDIA TX2串口+C语言搞定大疆C620电机控制(附完整代码)
  • Nginx 升级指南:从 1.24.0 升级到 1.30.0
  • Synopsys ICC GUI高效操作秘籍:除了鼠标点击,这些键盘热键和隐藏技巧让你布局布线快人一步
  • 别再凭感觉挑照片了!用FaceQnet给你的AI人脸识别系统做个‘质检员’
  • 别再依赖在线服务了!手把手教你用Fast Downward在本地搭建PDDL规划器(附VSCode配置避坑指南)
  • 2026最新诚信优选长治市黄金回收白银回收铂金回收彩金回收高口碑靠谱门店TOP5权威排行榜+联系方式推荐 - 前途无量YY
  • 2026年靖江大平层全屋高端定制企业选型指南
  • 实战避坑:Jenkins Pipeline中多容器Pod Agent的权限与日志问题解决指南
  • 2026最新诚信优选西安市黄金回收白银回收铂金回收彩金回收高口碑靠谱门店TOP5权威排行榜+联系方式推荐 - 前途无量YY
  • CVX默认求解器太慢?手把手教你为Matlab的CVX工具箱“外挂”MOSEK加速包(含许可证激活与路径配置详解)
  • 告别理论:在STM32F407上实测FFT逆变换,单精度和双精度结果对比一目了然
  • 小老板别再自己瞎捣鼓报表了