根据一列值对子数组数据进行分组和合并

2023-12-27

我在下面的 PHP 代码中有一个数组,我想将该数组转换为按数据值分组。简化数组总是很困难。

原始数组:

$array = [
    ['date' => '2017-08-22', 'AAA' => 1231],
    ['date' => '2017-08-21', 'AAA' => 1172],
    ['date' => '2017-08-20', 'AAA' => 1125],
    ['date' => '2017-08-21', 'BBB' => 251],
    ['date' => '2017-08-20', 'BBB' => 21773],
    ['date' => '2017-08-22', 'CCC' => 3750],
    ['date' => '2017-08-20', 'CCC' => 321750],
];

下面是我想要的数组:

[
    '2017-08-22' => ['AAA' => 1231, 'CCC' => 3750],
    '2017-08-21' => ['AAA' => 1172, 'BBB' => 251],
    '2017-08-20' => ['AAA' => 1125, 'BBB' => 21773, 'CCC' => 321750],
]

如果数据不存在,也可以使用空的 null 值。 [BBB] => 2017-08-22 为 NULL。 有人可以帮忙吗?提前致谢...


一个简单的循环应该可以做到这一点..

$group = [];
foreach ($data as $item)  {
    if (!isset($group[$item['date']])) {
        $group[$item['date']] = [];
    }
    foreach ($item as $key => $value) {
        if ($key == 'date') continue;
        $group[$item['date']][$key] = $value;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据一列值对子数组数据进行分组和合并 的相关文章

随机推荐