2012-05-09 12 views
1

私は自分のデータベースから時間に関する多くのメモを取り出しています。異なるクエリのイベントを時間単位でグループ化する方法

多次元配列であまりにも暑いわけではありませんが、すべてのイベントを発生時にまとめてグループ化したいと思います。ここで

は、私のクエリのいずれかである:

SELECT TIME(date) AS time, followupNote, completed, entityRef 
FROM entity_followups 
WHERE userRef = ? 
AND DAY(date) = ? 
AND MONTH(date) = ? 
AND YEAR(date) = ? 

本の出力例は、3行、完成した後の時間である第1列、ノート、そして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

をだからあなたは何を試してみましたか? – rdlowrey

答えて

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); 
}