2016-11-30 4 views
-1

Я пытаюсь кодировать данные в формате JSON ниже. Невозможно добавить массив категорий внутри категорий. Часто царапать голову ... Может ли кто-нибудь помочь мне в этом?PHP добавить arraylist в существующий массив

Желаемая Выход:

{ 
"chart": { 
       "caption": "Product-wise Quarterly Revenue vs. Profit %", 
       "subCaption": "Harry's SuperMart - Last Year", 
       "xAxisname": "Quarter", 
       "pYAxisName": "Sales", 
       "sYAxisName": "Profit %", 
       "numberPrefix": "$", 
       "sNumberSuffix": "%", 
       "sYAxisMaxValue": "25", 
       "paletteColors": "#0075c2,#1aaf5d,#f2c500", 
       "bgColor": "#ffffff", 
       "borderAlpha": "20",    
       "showCanvasBorder": "0", 
       "usePlotGradientColor": "0", 
       "plotBorderAlpha": "10", 
       "legendBorderAlpha": "0", 
       "legendShadow": "0", 
       "legendBgAlpha": "0", 
       "valueFontColor": "#ffffff",    
       "showXAxisLine": "1", 
       "xAxisLineColor": "#999999", 
       "divlineColor": "#999999",    
       "divLineIsDashed": "1", 
       "showAlternateHGridColor": "0", 
       "subcaptionFontBold": "0", 
       "subcaptionFontSize": "14", 
       "showHoverEffect": "1" 
      }, 
      "categories": [ 
       { 
        "category": [ 
         { 
          "label": "Q1" 
         }, 
         { 
          "label": "Q2" 
         }, 
         { 
          "label": "Q3" 
         }, 
         { 
          "label": "Q4" 
         } 
        ] 
       } 
      ] 
     } 

Мой PHP код:

$arrData = array(
        "chart" => array(
            "caption"=> "Product-wise Quarterly Revenue vs. Profit %", 
       "subCaption"=> "Harry's SuperMart - Last Year", 
       "xAxisname"=> "Quarter", 
       "pYAxisName"=> "Sales", 
       "sYAxisName"=> "Profit %", 
       "numberPrefix"=> "$", 
       "sNumberSuffix"=> "%", 
       "sYAxisMaxValue"=> "25", 
       "paletteColors"=> "#0075c2,#1aaf5d,#f2c500", 
       "bgColor"=> "#ffffff", 
       "borderAlpha"=> "20", 
       "showCanvasBorder"=> "0", 
       "usePlotGradientColor"=> "0", 
       "plotBorderAlpha"=> "10", 
       "legendBorderAlpha"=> "0", 
       "legendShadow"=> "0", 
       "legendBgAlpha"=> "0", 
       "valueFontColor"=> "#ffffff", 
       "showXAxisLine"=> "1", 
       "xAxisLineColor"=> "#999999", 
       "divlineColor"=> "#999999", 
       "divLineIsDashed"=> "1", 
       "showAlternateHGridColor"=> "0", 
       "subcaptionFontBold"=> "0", 
       "subcaptionFontSize"=> "14", 
       "showHoverEffect"=> "1" 
     ) 
       ); 


       $arrData["categories"] = array(); 
       $arrData["category"] = array(); 
       //array_push($arrData["categories"],array($arrData["category"])); 
       //array_push($arrData["categories"],array($arrData["category"])); 
       array_push($arrData["category"], array(
       "label" => "Q1", 
)); 


       array_push($arrData["category"], array(
       "label" => "Q2", 
       )); 
       $json_string = json_encode($arrData, JSON_PRETTY_PRINT); 
       echo $json_string; 

     } 

PHP выход:

{ 
    "chart": { 
     "caption": "Product-wise Quarterly Revenue vs. Profit %", 
     "subCaption": "Harry's SuperMart - Last Year", 
     "xAxisname": "Quarter", 
     "pYAxisName": "Sales", 
     "sYAxisName": "Profit %", 
     "numberPrefix": "$", 
     "sNumberSuffix": "%", 
     "sYAxisMaxValue": "25", 
     "paletteColors": "#0075c2,#1aaf5d,#f2c500", 
     "bgColor": "#ffffff", 
     "borderAlpha": "20", 
     "showCanvasBorder": "0", 
     "usePlotGradientColor": "0", 
     "plotBorderAlpha": "10", 
     "legendBorderAlpha": "0", 
     "legendShadow": "0", 
     "legendBgAlpha": "0", 
     "valueFontColor": "#ffffff", 
     "showXAxisLine": "1", 
     "xAxisLineColor": "#999999", 
     "divlineColor": "#999999", 
     "divLineIsDashed": "1", 
     "showAlternateHGridColor": "0", 
     "subcaptionFontBold": "0", 
     "subcaptionFontSize": "14", 
     "showHoverEffect": "1" 
    }, 
    "categories": [ 

    ], 
    "category": [ 
     { 
      "label": "Q1" 
     }, 
     { 
      "label": "Q2" 
     } 
    ] 
} 

ответ

0
for ($i = 1; $i <= 4; $i++) { 
    $arrData['categories'][0]['category'] []= ["label" => "Q{$i}"]; 
} 

Кстати, вы должны использовать []= вместо array_push, becaus e таким образом нет накладных расходов на вызов функции.

+0

спасибо. Я попробую это – ram

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