2016-06-06 5 views
1

Я хотел бы иметь формат вывода JSON, как этотPHP JSON Encode: Форматирование

{ 
    "data": 
    [ 
     ["FAMILY: Isopropyl Alcohol 250ml","32.34"], 
     ["AMBROXOL Expel 6mg-mL 15ML Drops","75.04"] 

    ] 

} 

Однако, он показывает по-разному, как хотелось. Первые предметы продолжают воспроизводиться. Результат:

{ 
"data": 
[ 
    ["FAMILY: Isopropyl Alcohol 250ml","32.34"], 
    ["FAMILY: Isopropyl Alcohol 250ml","32.34","AMBROXOL Expel 6mg-mL 15ML Drops","75.04"] 

] 

} 

Это мой PHP код:

foreach ($this->cases_model->test() as $row)  { 

       $new_row[]=$row['name']; 
       $new_row[]=$row['dp']; 
       $row_set['data'][] = $new_row; //build an array 
      } 

     echo json_encode($row_set); //format the array into json data 

ответ

4

$new_row не очищается, поэтому она содержит данные о предыдущей итерации. Таким образом, измените ваш foreach на:

foreach ($this->cases_model->test() as $row){ 
    $new_row = []; //Reset the array for every loop 
    $new_row[]=$row['name']; 
    $new_row[]=$row['dp']; 
    $row_set['data'][] = $new_row; //build an array 
} 
1
foreach ($this->cases_model->test() as $row)  { 

    $new_row[]=$row['name']; 
    $new_row[]=$row['dp']; 
    $row_set['data'][] = $new_row; //build an array 
    $new_row = NULL;  
}