PHP二维数组中如何合并key对应的数据并求和?

php二维数组中如何合并key对应的数据并求和?

php二维数组如何将key中的数据对应合并

本文将介绍如何将php二维数组中key对应的数据合并为一个值,并提供一个可用的示例代码,以帮助你轻松实现这一操作。

示例

考虑以下二维数组:

$arr = [    'categories' => [        '22-01-30',        '22-01-31',        '22-02-01',        '22-02-02',        '22-02-03',        '22-02-04',        '22-02-05',        '22-02-06',        '22-02-07',        '22-02-08',        '22-02-09',        '22-02-10',        '22-02-11',        '22-02-12',        '22-02-13',        '22-02-14',        '22-02-15',        '22-02-16',        '22-02-17',        '22-02-18',        '22-02-19',        '22-02-20',        '22-02-21',        '22-02-22',        '22-02-23',        '22-02-24',        '22-02-25',        '22-02-26',        '22-02-27',        '22-02-28',    ],    'data'       => [        '0',        '0',        '0',        '0',        '0',        '0',        '0',        '0',        '0',        '0',        '5638.04',        '0.00',        '0.00',        '0.00',        '0.00',        '0.00',        '0.00',        '0.00',        '0.00',        '0.00',        '0.00',        '0.00',        '0.00',        '0.00',        '25915.99',        '1606.44',        '1676.90',        '0.00',        '0.00',        '1203.08',    ],];

我们的目标是将categories数组中的日期范围合并,并将其对应的数据相加,最终得到一个新的数组,其中categories包含合并后的日期范围,而data包含相加后的数据。

代码实现

$chunk = 6;$result = array_reduce(array_chunk($arr['categories'], $chunk), function ($result, $current) use ($chunk, $arr) {    $start = current($current);    $end = end($current);    $result['categories'][] = $start . '/' . $end;    $count = count($result['categories'] ?? []);    $result['data'][] = array_sum(array_slice($arr['data'] ?? [], $count * $chunk, $chunk));    return $result;}, ['categories' => [], 'data' => []]);var_dump($result, array_sum($arr['data']) === array_sum($result['data']));

代码说明

首先,我们将categories数组块分割为每块$chunk个元素,本例中为每块6个。然后,我们使用array_reduce函数迭代每个块,并将相邻日期范围合并为字符串并存储在result[‘categories’]中。此外,我们对每个块中对应的data数组元素进行求和,并将结果存储在result[‘data’]中。最后,我们检查arr[‘data’]的总和是否等于result[‘data’]的总和,以验证合并后的结果是否正确。

执行以上代码后,将输出合并后的数组:

立即学习“PHP免费学习笔记(深入)”;

array(2) {  ["categories"]=>  array(5) {    [0]=>    string(11) "22-01-30/22-02-04"    [1]=>    string(11) "22-02-05/22-02-10"    [2]=>    string(11) "22-02-11/22-02-16"    [3]=>    string(11) "22-02-17/22-02-22"    [4]=>    string(11) "22-02-23/22-02-28"  }  ["data"]=>  array(5) {    [0]=>    string(5) "0.00"    [1]=>    string(8) "5638.04"    [2]=>    string(5) "0.00"    [3]=>    string(5) "0.00"    [4]=>    string(10) "30402.41"  }}bool(true)

以上就是PHP二维数组中如何合并key对应的数据并求和?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1250662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 22:27:46
下一篇 2025年12月8日 17:12:14

相关推荐

发表回复

登录后才能评论
关注微信