如何将二维数组按年份和月份分组成新的数组?

2026-04-02 03:151阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计956个文字,预计阅读时间需要4分钟。

如何将二维数组按年份和月份分组成新的数组?

要实现的效果:生成一个数组,包含2023年的每个月份,每个月份包含一个包含id、billdtimes、month、price、years、wuyeId、communityId、unitNumber、buildingId和ro的数组。

简化后的代码如下:

pythonresult=[]for month in range(1, 13): result.append([ {'billdtimes': 1672502400, 'month': month, 'price': 8.00, 'years': 2023, 'wuyeId': 1, 'communityId': 3, 'unitNumber': 2, 'buildingId': 1, 'ro': 'ro'} ])

要实现的效果:

如何将二维数组按年份和月份分组成新的数组?

Array ( [2023---年份] => Array ( [1--月份:] => Array ( [0] => Array ( [id] => 28 [billdtimes] => 1672502400 [month] => 1 [price] => 8.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1672502400 [billEndtime] => 1675094400 ) [1] => Array ( [id] => 31 [billdtimes] => 1672502400 [month] => 1 [price] => 3.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1672502400 [billEndtime] => 1675094400 ) ) [2] => Array ( [0] => Array ( [id] => 29 [billdtimes] => 1675180800 [month] => 2 [price] => 8.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1675180800 [billEndtime] => 1677513600 ) ) [3] => Array ( [0] => Array ( [id] => 30 [billdtimes] => 1677600000 [month] => 3 [price] => 8.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1677600000 [billEndtime] => 1680192000 ) ) [4] => Array ( [0] => Array ( [id] => 6 [billdtimes] => 1680313031 [month] => 4 [price] => 6.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 0 [billEndtime] => 0 ) [1] => Array ( [id] => 7 [billdtimes] => 1680313031 [month] => 4 [price] => 1.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 0 [billEndtime] => 0 ) [2] => Array ( [id] => 8 [billdtimes] => 1680313031 [month] => 4 [price] => 2.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 0 [billEndtime] => 0 ) ) ) [2022] => Array ( [12] => Array ( [0] => Array ( [id] => 11 [billdtimes] => 1669859617 [month] => 12 [price] => 6.00 [years] => 2022 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1669859617 [billEndtime] => 1672365217 ) ) ) )

select代码数据

Array ( [0] => Array ( [id] => 28 [billdtimes] => 1672502400 [month] => 1 [price] => 8.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1672502400 [billEndtime] => 1675094400 ) [1] => Array ( [id] => 31 [billdtimes] => 1672502400 [month] => 1 [price] => 3.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1672502400 [billEndtime] => 1675094400 ) [2] => Array ( [id] => 29 [billdtimes] => 1675180800 [month] => 2 [price] => 8.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1675180800 [billEndtime] => 1677513600 ) [3] => Array ( [id] => 30 [billdtimes] => 1677600000 [month] => 3 [price] => 8.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1677600000 [billEndtime] => 1680192000 ) [4] => Array ( [id] => 6 [billdtimes] => 1680313031 [month] => 4 [price] => 6.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 0 [billEndtime] => 0 ) [5] => Array ( [id] => 7 [billdtimes] => 1680313031 [month] => 4 [price] => 1.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 0 [billEndtime] => 0 ) [6] => Array ( [id] => 8 [billdtimes] => 1680313031 [month] => 4 [price] => 2.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 0 [billEndtime] => 0 ) [7] => Array ( [id] => 11 [billdtimes] => 1669859617 [month] => 12 [price] => 6.00 [years] => 2022 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1669859617 [billEndtime] => 1672365217 ) )


实现代码:

sonlist 查询的元数据 使用&引用方法实现

// 创建基于主键的数组引用 $refer = array(); foreach ($sonlist as $key => $data) { $refer[$data["years"]][$data["month"]][] = &$sonlist[$key]; }



public function getFormatMenus($map = [], $field = '*') { $list = $this->field($field)->where($map)->select()->order('sort asc')->toArray(); return $list ? $list : []; } public function listToTree(array $list) { $tree = array(); $pk = 'id'; $pid = 'pid'; $root = 0; $child = 'children'; if (is_array($list)) { // 创建基于主键的数组引用 $refer = array(); foreach ($list as $key => $data) { $refer[$data[$pk]] = &$list[$key]; } foreach ($list as $key => $data) { // 判断是否存在parent $parentId = $data[$pid]; if ($root == $parentId) { $tree[] = &$list[$key]; } else { if (isset($refer[$parentId])) { $parent = &$refer[$parentId]; $parent['childs'][] = $data['id']; $parent[$child][] = &$list[$key]; } } } } return $tree; }

本文共计956个文字,预计阅读时间需要4分钟。

如何将二维数组按年份和月份分组成新的数组?

要实现的效果:生成一个数组,包含2023年的每个月份,每个月份包含一个包含id、billdtimes、month、price、years、wuyeId、communityId、unitNumber、buildingId和ro的数组。

简化后的代码如下:

pythonresult=[]for month in range(1, 13): result.append([ {'billdtimes': 1672502400, 'month': month, 'price': 8.00, 'years': 2023, 'wuyeId': 1, 'communityId': 3, 'unitNumber': 2, 'buildingId': 1, 'ro': 'ro'} ])

要实现的效果:

如何将二维数组按年份和月份分组成新的数组?

Array ( [2023---年份] => Array ( [1--月份:] => Array ( [0] => Array ( [id] => 28 [billdtimes] => 1672502400 [month] => 1 [price] => 8.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1672502400 [billEndtime] => 1675094400 ) [1] => Array ( [id] => 31 [billdtimes] => 1672502400 [month] => 1 [price] => 3.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1672502400 [billEndtime] => 1675094400 ) ) [2] => Array ( [0] => Array ( [id] => 29 [billdtimes] => 1675180800 [month] => 2 [price] => 8.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1675180800 [billEndtime] => 1677513600 ) ) [3] => Array ( [0] => Array ( [id] => 30 [billdtimes] => 1677600000 [month] => 3 [price] => 8.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1677600000 [billEndtime] => 1680192000 ) ) [4] => Array ( [0] => Array ( [id] => 6 [billdtimes] => 1680313031 [month] => 4 [price] => 6.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 0 [billEndtime] => 0 ) [1] => Array ( [id] => 7 [billdtimes] => 1680313031 [month] => 4 [price] => 1.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 0 [billEndtime] => 0 ) [2] => Array ( [id] => 8 [billdtimes] => 1680313031 [month] => 4 [price] => 2.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 0 [billEndtime] => 0 ) ) ) [2022] => Array ( [12] => Array ( [0] => Array ( [id] => 11 [billdtimes] => 1669859617 [month] => 12 [price] => 6.00 [years] => 2022 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1669859617 [billEndtime] => 1672365217 ) ) ) )

select代码数据

Array ( [0] => Array ( [id] => 28 [billdtimes] => 1672502400 [month] => 1 [price] => 8.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1672502400 [billEndtime] => 1675094400 ) [1] => Array ( [id] => 31 [billdtimes] => 1672502400 [month] => 1 [price] => 3.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1672502400 [billEndtime] => 1675094400 ) [2] => Array ( [id] => 29 [billdtimes] => 1675180800 [month] => 2 [price] => 8.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1675180800 [billEndtime] => 1677513600 ) [3] => Array ( [id] => 30 [billdtimes] => 1677600000 [month] => 3 [price] => 8.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1677600000 [billEndtime] => 1680192000 ) [4] => Array ( [id] => 6 [billdtimes] => 1680313031 [month] => 4 [price] => 6.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 0 [billEndtime] => 0 ) [5] => Array ( [id] => 7 [billdtimes] => 1680313031 [month] => 4 [price] => 1.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 0 [billEndtime] => 0 ) [6] => Array ( [id] => 8 [billdtimes] => 1680313031 [month] => 4 [price] => 2.00 [years] => 2023 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 0 [billEndtime] => 0 ) [7] => Array ( [id] => 11 [billdtimes] => 1669859617 [month] => 12 [price] => 6.00 [years] => 2022 [wuyeId] => 1 [communityId] => 3 [unitNumber] => 2 [buildingId] => 1 [roomNumber] => 302 [billStartime] => 1669859617 [billEndtime] => 1672365217 ) )


实现代码:

sonlist 查询的元数据 使用&引用方法实现

// 创建基于主键的数组引用 $refer = array(); foreach ($sonlist as $key => $data) { $refer[$data["years"]][$data["month"]][] = &$sonlist[$key]; }



public function getFormatMenus($map = [], $field = '*') { $list = $this->field($field)->where($map)->select()->order('sort asc')->toArray(); return $list ? $list : []; } public function listToTree(array $list) { $tree = array(); $pk = 'id'; $pid = 'pid'; $root = 0; $child = 'children'; if (is_array($list)) { // 创建基于主键的数组引用 $refer = array(); foreach ($list as $key => $data) { $refer[$data[$pk]] = &$list[$key]; } foreach ($list as $key => $data) { // 判断是否存在parent $parentId = $data[$pid]; if ($root == $parentId) { $tree[] = &$list[$key]; } else { if (isset($refer[$parentId])) { $parent = &$refer[$parentId]; $parent['childs'][] = $data['id']; $parent[$child][] = &$list[$key]; } } } } return $tree; }