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在数据分片时很有用。用好这些函数很多需要写循环的场景一行代码就搞定了