我从数据库中提取了一些与时间相关的注释。
我对多维数组并不太热,但我想在所有事件发生的时候将它们组合在一起。
以下是我的一个问题:
SELECT TIME(date) AS time, followupNote, completed, entityRef
FROM entity_followups
WHERE userRef = ?
AND DAY(date) = ?
AND MONTH(date) = ?
AND YEAR(date) = ?
此示例输出可以是三行,第一列是时间,然后是注释,已完成,然后是entityRef。
我希望任何具有相同时间的行在数组中组合在一起,例如
Array (
[0] => Array (
[0] => 12:00:00
[1] => Array (
[0] => note
[1] => completed
[2] => entityRef
)
[2] => Array (
[0] => note2
[1] => completed2
[2] => entityRef2
)
)
)
但稍后会有其他查询收集需要添加到顶级数组中的其他类型的事件,如果事件与子数组中的事件具有相同的时间,则需要将其添加到其中。
答案 0 :(得分:2)
我假设您现有的代码足以获得时间和价值。因此,您将在您选择使用的任何变量或数据结构中包含这些项目。出于本答案的目的,我将假设这些值已存在于各个变量中:$time
,$value[0]
,$value[1]
和$value[2]
。此外,我将假设结果正被加载到数组$timesAndValues[]
我认为关键是要在相应的时间内对$timesAndValues[]
数组进行索引:
if (isset($timesAndValues[$time]))
{ //The corresponding sub-array already exists, so we just need to load it
//Push the array of values into the sub-array
array_push($timesAndValues[$time], $value);
}
else
{ //The corresponding sub-array does not exist yet, so we need to create it and load it
//Create the sub-array
$timesAndValues[$time] = array($time);
//Push the array of values into the sub-array
array_push($timesAndValues[$time], $value);
}