php - 将第二个查询结果作为关联数组推送到从 fetch_assoc 获取的现有数据中
问题描述
我正在尝试合并两个 SQL 查询结果,而第一个查询总是会返回一行,而第二个查询可能会返回 0 到多行。我将第一个查询结果加载到 PHP 中的数组中,例如
$data = [];
while($row = $result->fetch_assoc()) {
$data=$row;
}
并尝试附加第二个查询的结果(记住这次可以是很多行),比如
while($rowtwo = $resulttwo->fetch_assoc()) {
array_push($data, array('per' => $row['per'],
'duration' => $row['duration']));
}
输出print_r()
看起来像
Array
(
[term] => 0
[available] => 1
[0] => Array
(
[per] => 2019-09-04
[duration] => 14
)
[1] => Array
(
[per] => 2019-09-04
[duration] => 15
)
[2] => Array
(
[per] => 2019-09-04
[duration] => 15-30
)
[3] => Array
(
[per] => 2019-09-04
[duration] => 16
)
)
但是我需要将第二个查询存储为数组内的数组,例如
Array
(
[term] => 0
[available] => 1
[newarray] = [
[0] => Array
(
[per] => 2019-09-04
[duration] => 14
)
[1] => Array
(
[per] => 2019-09-04
[duration] => 15
)
[2] => Array
(
[per] => 2019-09-04
[duration] => 15-30
)
[3] => Array
(
[per] => 2019-09-04
[duration] => 16
)
]
)
解决方案
在您的第一个查询之后和第二个查询之前,将一个newentry
元素添加到您的$data
数组中。然后将值推入其中,而不是$data
:
$data = [];
while($row = $result->fetch_assoc()) {
$data = $row;
}
// ...
$data['newentry'] = array();
while($rowtwo = $resulttwo->fetch_assoc()) {
array_push($data['newentry'], array('per' => $rowtwo['per'],
'duration' => $rowtwo['duration']));
}
请注意,您$row
在第二个循环中。我已经$rowtwo
在这段代码中更正了这一点。
推荐阅读
- php - 如何为 travis 构建测试创建作曲家
- excel - CopyFromRecordset 到 Excel 仅复制数字
- javascript - 使用 VueJS 和 Skeleton CSS 在 3 个项目迭代后创建新行
- mysql - 如何将此日期/时间值插入日期时间字段
- angular-cli - Angular 2 框架的 DHTMLX 甘特图使用给出了错误
- python - 自定义 django 管理员
- sql - SQL Server 为每一行创建一个具有随机数的临时表
- ios - 在模拟器和物理设备上都没有在 IOS 中获得本地通知
- c# - 如何对每个 id 和总计进行总计
- magento - Magento 移动到新服务器后显示默认图像