2014-10-28 3 views
0

Почему я получаю неопознанные ошибки индекса при использовании этой функции, код, который он выводит, является тем, что я хочу, но он также бросает ошибки на страницу?Неопознанные ошибки индекса

if($result) { 
    $jsonData = convert($result); 
} 

function convert($result) { 
$i = 0; 
    $intermediate = array(); 

    while($rows = mysqli_fetch_assoc($result)) { 
     $key = $rows['POS']; 
     $x = $i; 
     $y = $rows['COUNT']; 
     $intermediate[$key][] = array('x' => count($intermediate[$key]), 'y' => $y); 
     $i++; 
    } 


    $output = array(); 

    foreach($intermediate as $key => $values) { 
     $output[] = array(
      "key" => $key, 
      'values' => $values 
     ); 
    } 

    return json_encode($output, JSON_NUMERIC_CHECK); 

данные он возвращает это

[{ "ключ": "OW1", "ценности": [{ "х": 0, "у": 4}, { "х": 1, "у": 3}, { "х": 2, "у": 2}, { "х": 3, "у": 1}, { "х": 4, "у": 1} ]}, { "ключ": "OW2", "ценности": [{ "х": 0, "у": 4}, { "х": 1, "у": 2}, { "х": 2, "Y": 1}, { "х": 3, "у": 3}, { "х": 4, "у": 2}]} { "ключ",: "OW3", "ценности ": [{" х ": 0," у ": 4}, {" х ": 1," у ": 5}, {" х ": 2," у ": 1}, {" х ": 3, "у": 2}, { "х": 4, "у": 1}]}]

И ошибки эти

Примечание: Не определено индекс: OW1 в C: \ WAMP \ WWW \ multibar.html.php в строке 24

Примечание: Undefined индекс: OW2 в C: \ WAMP \ WWW \ multibar.html.php на линии 24

Примечание: Undefined индекс: OW3 в C: \ WAMP \ WWW \ multibar.html.php на строка 24

ответ

0

Уведомление выдается из-за того, что вы добавляете элементы к еще не определенной переменной. В PHP это не актуальная проблема, потому что PHP просто перекладывает переменные на все, что им нужно.

Чтобы устранить это уведомление обязательно инициализировать все переменные:

if (!isset($intermediate[$key])) $intermediate[$key] = array(); 
$intermediate[$key][] = array('x' => count($intermediate[$key]), 'y' => $y); 
+0

Работал отлично, спасибо много! – Engl12

Смежные вопросы