2013-06-11 3 views
-2

У меня есть огромная проблема с моими двумя прекрасными JSON-массивами.JSON Array сходит с ума

код, как:

else if ($range == "day") $sqlRangeString = "GROUP BY DATE_FORMAT(dbtime, '%Y-%c-%e')"; 

$startdate = doTimeStamp($startdate); 
$enddate = doTimeStamp($enddate); 

    if (isset($consumer_on)) 
    { 
    echo '['; 
    $counter = 0;  
    foreach($consumer_name as $consumer_name_value) 
    {   
    $result2 = mysql_query("SELECT AVG(loadvalue) AS m1, dbtime, time 
       FROM $consumer_name_value   
       WHERE time >= $startdate 
       AND time <= $enddate 
       $sqlRangeString 
       ORDER BY time") or die('#ä'); 
    while ($data2 = mysql_fetch_array($result2)) 
    {  
     $consumer_value[$counter][0] = $data2['time'];   
     if (!isset($consumer_value[$counter][1])) $consumer_value[$counter][1] = 0; 
     $consumer_value[$counter][1] = (float)$consumer_value[$counter][1] + (float)$data2['m1'];  
     $counter++;  
    }  
    } 
    echo json_encode($consumer_value); 
    } 

    if (isset($producer_on)) 
    { 
    $ounter = 0; 
    if (isset($consumer_on) && ($consumer_on == 1))echo ','; 
    foreach($producer_name as $producer_name_value) 
    { 
    $result3 = mysql_query("SELECT AVG(power) AS m1, dbtime, time 
       FROM $producer_name_value   
       WHERE time >= $startdate 
       AND time <= $enddate 
       $sqlRangeString 
       ORDER BY time") or die('#ää'); ;  

     while ($data3 = mysql_fetch_array($result3)) 
     {  
     $producer_value[$counter][0] = $data3['time']; 
    if (!isset($producer_value[$counter][1])) $producer_value[$counter][1] = 0; 
     $producer_value[$counter][1] = $producer_value[$counter][1] + (float)$data3['m1']; 
     $counter++; 
     }  
    } 
    echo json_encode($producer_value);  
    } 
} 

?> 

Моя проблема выхода:

enter image description here

Почему выход из массива produver_value имеет номер перед каждой части? Как я могу удалить это?

+0

если вы выполняете 'echo '[';', то где ваше 'echo ']';'? –

+0

Это в конце. Примерно 100 строк ниже. Я выбрал только важные линии. – Susanne92

ответ

2

«массив» имеет число перед каждым элементом, потому что индексы массива PHP не начинаются с 0. У вас есть ассоциативный массив вместо обычного, что делает json_encode источником объекта JSON вместо массива.

Вполне возможно, что это происходит из-за этого опечатка:

$ounter = 0; // should be $counter ? 

Вы можете использовать array_values для извлечения значений из массива.

+0

Спасибо вам большое! Что за фу ... – Susanne92