2016-08-09 5 views
0

У меня есть случай, когда есть дата отметки времени, которая содержит формат даты. Тогда я хотел построить диаграмму, которые число «щелкнули» пунктов «в день»,Добавить новый ключ, значение (значение = 1) внутри массива в php

//array declaration 
$array1 = array("Date" => 0); 
$array2 = array("Date" => 0); 
$array3 = array("Date" => 0); 
$array4 = array("Date" => 0); 
$array5 = array("Date" => 0); 
$array6 = array("Date" => 0); 
$array7 = array("Date" => 0); 
$array8 = array("Date" => 0); 
//var_dump($array); 

foreach ($_sql as $result1) { 
    $timestamp = $result1['timestamp']; 
    $itemType = $result1['itemType']; 

    //separate the time and date 
    $explodeTime = explode(" ", $timestamp); 
    $date = $explodeTime[0]; 
    //$arrDate = array($date); 

    //var_dump($Date); 

    //if the item type is 1; 
    if($itemType == 1){ 



     //check the existence 
     if(array_key_exists($date,$array1)){ 

      //if exist increment the click by 1 

      foreach ($array1 as $key => $value) { 

       $array1[$key]=$value + 1; 


       //var_dump($array1); 


     }   
      } 


       //else add new record and set default value as 1 
       else{ 



        //echo "Insert new Key"; 

        //$array1 = array($date => 1); 
        //var_dump($array1); 


        //var_dump($array1); 
        //exit(); 


       } 
    } 

я хотел, чтобы получить мой массив результата с этим форматом

array(1) { 
["2009-04-17"]=> 211 
int(1) 
} 
array(1) { 
["2009-04-18"]=> 1213 
int(1) 
} 
array(1) { 
["2009-04-19"]=> 1232 
int(1) 
} 
array(1) { 
["2009-04-20"]=> 32312 
int(1) 
} 

поэтому я могу получить значение даты, тогда легко преобразовать данные в json, а затем вставить в Chartjs.

извините, если мой вопрос непонятен, потому что я только что начал изучать php.

+0

Что ваша проблема именно? Есть ли сообщение об ошибке? – vincenth

+0

Вы сначала получаете информацию из базы данных? – RamRaider

ответ

1

Я думаю, что это то, что вы пытаетесь сделать:

//array declaration 
$array = array(); 

foreach ($_sql as $result1) { 
    //separate the time and date 
    $dateTime = new DateTime($result1['timestamp']); 
    $date = $dateTime->format('Y-m-d'); 

    //if the item type is 1; 
    if (1 == $result1['itemType']) { 
     //check the existence 
     if (array_key_exists($date, $array)) { 
      //if exist increment the click by 1 
      $array[$date]++; 
     } else { 
      $array[$date] = 1; 
     } 
    } 
} 
+0

спасибо, человек, это то, что я ищу –

0

Что вам нужно в точности? Если вам нужно преобразовать временную метку на дату, используйте функцию формата.

$timestamp=$result1['timestamp']; 
$timestamp=new DateTime($timestamp); 
$date=$timestamp->format("n.j.Y"); 
Смежные вопросы