php
  • arrays
  • 2016-04-12 11 views 0 likes 
    0

    申し訳ありませんがタイトルがあいまいだった場合は、私の問題を説明するために最善を尽くします。だから、個々の日を配列に入れて保存する方法

    enter image description here

    、私は達成するために必要なことは1列に1日以内にすべてのtime_sendの値を持つことがあるので、日付の場合:次のようにテーブルの上に

    $queryForDateClicks="SELECT `time_send` FROM `notifications` WHERE `app_id`='$appId' AND `time_send`>'2016-04-11 23:59:59'"; 
    

    :私はこのようなクエリを実行しますこのような配列を持つこと2016-04-12次のとおりです。

    Array ([2016-04-12] => 2016-04-12 07:45:37, 2016-04-12 08:07:03, 2016-04-12 08:13:48) 
    

    そして、私はこれらの日付を格納する必要がある魔女の時間間隔た場合のから言わせています2016-04-052016-04-12の配列は次のようになります。

    Array ([2016-04-05] => 2016-04-05 06:45:37, 2016-04-05 11:17:30, [2016-04-06] => 2016-04-06 02:35:37, 2016-04-06 23:17:30, [2016-04-07] => 2016-04-07 06:45:37, 2016-04-07 21:17:30) 
    

    そしてそうに与えられた時間間隔内の各別の日のために。だから私はこのようにそれをやってみました:

    $queryForDateClicks="SELECT `time_send` FROM `notifications` WHERE `app_id`='$appId' AND `time_send`>'2016-04-11 23:59:59'"; 
        $chartResultDate=$mysqli->query($queryForDateClicks); 
        $dani=array(); 
        while($brojDate=$chartResultDate->fetch_assoc()){ 
         $minutes = substr($brojDate['time_send'], -8); 
         $days = substr($brojDate['time_send'], 0, 10); 
         if($minutes< '23:59:59'){ 
         $dani[$days]=$brojDate['time_send']; 
        }else{ 
         //should increment day by one and start checking again if minutes for that day are less than '23:59:59' and so on. 
         } 
        } 
        print_r($dani); 
    

    しかし、この今だけ最後の日付を印刷し、それは時間です:2016-04-12日の

    Array ([2016-04-12] => 2016-04-12 08:40:02) 
    

    そして、私のデータベースを格納し、より結果。 enter image description here

    私は立ち往生しています。

    答えて

    1

    あなたのSQLクエリは、このようなものになります:

    $notificationDataArray = []; 
    foreach($datalist as $row){ 
        if(!array_key_exists($row['time_send_date'], $notificationDataArray)){ 
         $notificationDataArray[$row['time_send_date']] = []; 
        } 
        array_push($notificationDataArray[$row['time_send_date']], $row['time_send']); 
    } 
    

    $datalistは、データの配列であることに注意してください:あなたが必要とするような配列を構築するには

    SELECT DATE(time_send) as time_send_date, time_send 
    FROM notifications 
    WHERE time_send > '2016-04-11 23:59:59' 
    ORDER BY time_send 
    

    は、あなたがこの部分を使用することができますデータベースから。

    array (size=2) 
        '2016-04-11' => 
        array (size=3) 
         0 => string '2016-04-11 13:52:23' (length=19) 
         1 => string '2016-04-11 14:45:57' (length=19) 
         2 => string '2016-04-11 15:41:21' (length=19) 
        '2016-04-12' => 
        array (size=2) 
         0 => string '2016-04-12 11:21:29' (length=19) 
         1 => string '2016-04-12 18:45:30' (length=19) 
    
    +0

    素晴らしい仕事男:

    あなたは、このような配列を持つことになります。ありがとう:) – Ognj3n

    関連する問題