php - 使用foreach循环php在另一个数组中创建数组
问题描述
已经四个小时了,我在谷歌和 SOF 上到处搜索,但找不到答案。这是我到目前为止所尝试的。到目前为止,这是我的代码
$tmp_array = array();
foreach ($cms as $key => $val) {
$cDate = date('Ym', strtotime($val['day_date']));
$tmp_ids[] = $val['id'];
if (array_key_exists($cDate, $tmp_array)) {
$tmp_array[$cDate]['new_visitors'] += $val['new_visitors'];
$tmp_array[$cDate]['ids'] = $tmp_ids;
} else {
$tmp_array[$cDate]['new_visitors'] = $val['new_visitors'];
$tmp_array[$cDate]['ids'] = $tmp_ids;
}
}
它的输出是这样的,
Array
(
[202001] => Array
(
[new_visitors] => 797
[ids] => Array
(
[0] => 31
[1] => 32
)
)
[202002] => Array
(
[new_visitors] => 461
[ids] => Array
(
[0] => 31
[1] => 32
[2] => 33
[3] => 34
)
)
)
但我想要这样的结果数组,
Array
(
[202001] => Array
(
[new_visitors] => 797
[ids] => Array
(
[0] => 31
[1] => 32
)
)
[202002] => Array
(
[new_visitors] => 461
[ids] => Array
(
[0] => 33
[1] => 34
)
)
)
任何建议,我在我的代码中做什么?
id 基本上是表的主键,“new_visitors”是访问我网站的访问者的计数。但到目前为止我还没有找到任何解决方案。
这是我的 $cms 数组。
Array
(
[0] => Array
(
[id] => 31
[day_date] => 2020-01-30 00:00:00
[new_visitors] => 459
)
[1] => Array
(
[id] => 32
[day_date] => 2020-01-31 00:00:00
[new_visitors] => 338
)
[2] => Array
(
[id] => 33
[day_date] => 2020-02-01 00:00:00
[new_visitors] => 242
)
[3] => Array
(
[id] => 34
[day_date] => 2020-02-02 00:00:00
[new_visitors] => 219
)
)
解决方案
谢谢你的错误,你的评论有效
$tmp_array = array();
foreach ($cms as $key => $val) {
$cDate = date('Ym', strtotime($val['day_date']));
if (array_key_exists($cDate, $tmp_array)) {
$tmp_array[$cDate]['new_visitors'] += $val['new_visitors'];
$tmp_array[$cDate]['ids'][] = $val['id'];
} else {
$tmp_array[$cDate]['new_visitors'] = $val['new_visitors'];
$tmp_array[$cDate]['ids'][] = $val['id'];
}
}
推荐阅读
- json - 如何将已从json中提取的变量键和值存储到Azure管道中另一个具有相同格式的变量中?
- symfony - Prestashop 愿望清单模块无法安装和配置
- algorithm - 编辑多个文件
- javascript - 决定使用受控或不受控制的输入元素并删除这些道具之一
- spring-boot - 如何在 Spring Boot 配置中正确覆盖 Kafka 消费者属性?
- android - Android Studio 在创建新的 kotlin 应用程序时出现问题
- javascript - 如何从 Google Applicatioin Script 中的 HTML 文本中获取变量的值?
- python - 为什么我的框架在 tkinter 中没有完全拉伸
- node.js - TypeORM 检查列是否已更改
- reactjs - Reducer 在 redux 中未接收到操作或调用操作时遇到问题