【发布时间】:2020-07-16 13:59:12
【问题描述】:
在 PHP 中,我循环访问数据库中的结果,并且我想将结果分组,所以我有以下代码...
$query = $db->prepare('select groupid, myval1, myval2 from mytable');
$query->execute();
$query->bind_result($groupid, $myval1, $myval2);
$groups = [];
$currentgroup = null;
while ($query->fetch()) {
if ($currentgroup == null || $currentgroup["groupid"] != $groupid) {
$currentgroup = ["groupid" => $groupid, "values" => []];
$groups[] = $currentgroup;
}
$currentgroup["values"][] = ["myval1" => $myval1, "myval2" => $myval2];
}
$query->close();
这导致$groups 数组包含每个特定组的单个项目,但values 数组仍然为空...
$groups = [
["groupid" = 1, "values" = []],
["groupid" = 2, "values" = []],
["groupid" = 3, "values" = []]
]
当我通过循环进行调试时,我可以看到 $currentgroup["values"] 正在正确填充,但似乎即使 $currentgroup 已添加到 $groups,这些值也不是填充。这向我表明正在使用不同的数组,但我看不到如何修复它......我想引用是必需的,但我正在努力弄清楚如何。
如何修复上述代码以导致...
$groups = [
["groupid" = 1, "values" = [
["myval1" = 1, "myval2" = 2],
["myval1" = 3, "myval2" = 4]
],
["groupid" = 2, "values" = [
["myval1" = 5, "myval2" = 6],
["myval1" = 7, "myval2" = 8],
["myval1" = 9, "myval2" = 10]
],
["groupid" = 3, "values" = []]
]
【问题讨论】: