2017-02-17 1 views
0

Ich verarbeite Array $arrData in JSON mit json_encode(). Ich sammelte Daten aus dem Internet und legte sie in PHP-Array. Das Problem ist, dass die Ausgabe voll von Tabs ist. Ich habe versucht $arrData = trim(preg_replace('/\t/', '', $arrData)); - aber es löscht \t und alle Arrays innerhalb von Arrays. Gibt es eine Möglichkeit, alle \t zu entfernen, ohne Array-Struktur zu zerstören?Entfernen Sie ` t` aus JSON, das aus dem multidimensionalen Array (php) erstellt wurde

Mein Array:

$arrData = array(
       "chart" => array(
        "caption" => "Number of visitors last week", 
     "subCaption" => "Bakersfield Central vs Los Angeles Topanga", 
     "captionFontSize" => "14", 
     "subcaptionFontSize" => "14", 
     "subcaptionFontBold" => "0", 
     "paletteColors" => "#0075c2,#1aaf5d,#FF5733,#33B5FF", 
     "bgcolor" => "#ffffff", 
     "showBorder" => "0", 
     "showShadow" => "0", 
     "showCanvasBorder" => "0", 
     "usePlotGradientColor" => "0", 
     "legendBorderAlpha" => "0", 
     "legendShadow" => "0", 
     "showAxisLines" => "0", 
     "showAlternateHGridColor" => "0", 
     "divlineThickness" => "1", 
     "divLineDashed" => "1", 
     "divLineDashLen" => "1", 
     "xAxisName" => "Day", 
     "showValues" => "0" 
       ) 
      ); 
$actualCategory = array($rowData[0][1], $rowData[0][2], $rowData[0][3], $rowData[0][4], $rowData[0][5], $rowData[0][6], $rowData[0][7]); 
       $a = array( 
       array($rowData[2][1], $rowData[2][2], $rowData[2][3], $rowData[2][4], $rowData[2][5], $rowData[2][6], $rowData[2][7]), 
       array($rowData[5][1], $rowData[5][2], $rowData[5][3], $rowData[5][4], $rowData[5][5], $rowData[5][6], $rowData[5][7]), 
       array($rowData[8][1], $rowData[8][2], $rowData[8][3], $rowData[8][4], $rowData[8][5], $rowData[8][6], $rowData[8][7]), 
       array($rowData[11][1], $rowData[11][2], $rowData[11][3], $rowData[11][4], $rowData[11][5], $rowData[11][6], $rowData[11][7]) 
       ); 


       $arrData['categories'] = array(); 
       $arrData['categories']['category'] = array(); 
       $arrData['dataset'] = array(); 



       foreach ($actualCategory as $value) { 
        array_push($arrData['categories']['category'], 
         array(
          'label' => $value 
         ) 
        ); 
       } 

       $q = 1; 
       for($z = 0;$z <= 3; $z++){ 

       $x[$z] = array('seriesname' => $rowData[$q][0], 'data' => array()); 
        foreach ($a[$z] as $value) { 
         array_push($x[$z]['data'], 
          array(
           'value' => $value 
          ) 
         ); 
        } 
       $q = $q + 3; 
       } 
    $arrData['dataset'] = $x; 

Mein JSON-Code:

{ 
"chart":{ 
"caption":"Number of visitors last week", 
"subCaption":"Bakersfield Central vs Los Angeles Topanga", 
"captionFontSize":"14", 
"subcaptionFontSize":"14", 
"subcaptionFontBold":"0", 
"paletteColors":"#0075c2,#1aaf5d,#FF5733,#33B5FF", 
"bgcolor":"#ffffff", 
"showBorder":"0", 
"showShadow":"0", 
"showCanvasBorder":"0", 
"usePlotGradientColor":"0", 
"legendBorderAlpha":"0", 
"legendShadow":"0", 
"showAxisLines":"0", 
"showAlternateHGridColor":"0", 
"divlineThickness":"1", 
"divLineDashed":"1", 
"divLineDashLen":"1", 
"xAxisName":"Day", 
"showValues":"0"}, 
"categories":{ 
"category":[ 
{"label":" \t \t N. \t 12\/02 \t "}, 
{"label":" \t \t Pn. \t 13\/02 \t "}, 
{"label":" \t \t Wt. \t 14\/02 \t "}, 
{"label":" \t \t \u015ar. \t 15\/02 \t "}, 
{"label":" \t \t Cz. \t 16\/02 \t "}, 
{"label":" \t \t Pt. \t 17\/02 \t "}, 
{"label":" \t \t So. \t 18\/02 \t "}]}, 
"dataset":[ 
{ 
"seriesname":" \t IRDN \t ", 
"data":[ 
{"value":" \t 142.59 \t "}, 
{"value":" \t 174.88 \t "}, 
{"value":" \t 176.97 \t "}, 
{"value":" \t 182.48 \t "}, 
{"value":" \t 160.15 \t "}, 
{"value":" \t 160.72 \t "}, 
{"value":" \t 165.47 \t "}]}, 
{ 
"seriesname":" \t \t \t SIRDN \t \t ", 
"data":[{"value":" \t 148.81 \t \t "}, 
{"value":" \t 197.29 \t \t "}, 
{"value":" \t 202.27 \t \t "}, 
{"value":" \t 211.93 \t \t "}, 
{"value":" \t 177.87 \t \t "}, 
{"value":" \t 179.37 \t \t "}, 
{"value":" \t 177.69 \t \t "}]}, 
{ 
"seriesname":" \t \t IRDN24 \t \t ", 
"data":[{"value":" \t 140.31 \t \t "}, 
{"value":" \t 174.50 \t \t "}, 
{"value":" \t 180.38 \t \t "}, 
{"value":" \t 187.70 \t \t "}, 
{"value":" \t 161.91 \t \t "}, 
{"value":" \t 161.62 \t \t "}, 
{"value":" \t 160.98 \t \t "}]}, 
{ 
"seriesname":" \t \t IRDN 8.22 \t \t ", 
"data":[{"value":" \t 147.33 \t "}, 
{"value":" \t 197.02 \t "}, 
{"value":" \t 202.21 \t "}, 
{"value":" \t 211.28 \t "}, 
{"value":" \t 178.11 \t "}, 
{"value":" \t 179.32 \t "}, 
{"value":" \t 176.31 \t "} 
]}]} 
+0

entfernen '\ t' von Ihrem JSON-Daten. ist es möglich? – smoqadam

+0

$ smoqadam Ja Ich möchte alle '\ t' aus Array oder JSON entfernen. Ich brauche nur klare Werte. – piotr

+0

können Sie 'array_walk()' verwenden und die Funktion rekursiv aufrufen, wenn das Element ein Array ist .. Eine halbe Stunde und ich kann ein Beispiel schreiben –

Antwort

0

sie im JSON ersetzen. Stellen Sie sicher, dass einfache Anführungszeichen verwenden:

$json = str_replace('\t', '', $json); 

Ihre regex wird auch funktionieren, aber Sie müssen drei \:

$json = preg_replace('/\\\t/', '', $json); 

die \t Um und die umliegenden Räume nutzen:

$json = preg_replace('/(\s+)?\\\t(\s+)?/', '', $json); 
+0

Danke :) Es hat funktioniert. – piotr

+0

Der letzte löscht nicht alle Leerzeichen. Zum Beispiel für Werte bekomme ich '142.59' so löscht es Leerzeichen und Tab. Ist es möglich, Space Tab und SAPce zu delete? – piotr

+0

Es funktionierte mit Ihren Beispieldaten, aber ich aktualisierte das Muster. – AbraCadaver

0
function clear_array(&$arr) 
{ 
     array_walk($arr,function (&$value,$key) 
     { 
       if(gettype($value)=='array') 
         clear_array($value); 

       else if(gettype($value)=='string'){ 
         $value= preg_replace('/[\s]/', '', $value); 
       } 
     }); 
}  

Übergeben Sie Ihr Array und es werden alle Leerzeichen aus den Werten entfernt.


JSON Ausgabe

{ 
    "chart": { 
     "caption": "Numberofvisitorslastweek", 
     "subCaption": "BakersfieldCentralvsLosAngelesTopanga", 
     "captionFontSize": "14", 
     "subcaptionFontSize": "14", 
     "subcaptionFontBold": "0", 
     "paletteColors": "#0075c2,#1aaf5d,#FF5733,#33B5FF", 
     "bgcolor": "#ffffff", 
     "showBorder": "0", 
     "showShadow": "0", 
     "showCanvasBorder": "0", 
     "usePlotGradientColor": "0", 
     "legendBorderAlpha": "0", 
     "legendShadow": "0", 
     "showAxisLines": "0", 
     "showAlternateHGridColor": "0", 
     "divlineThickness": "1", 
     "divLineDashed": "1", 
     "divLineDashLen": "1", 
     "xAxisName": "Day", 
     "showValues": "0" 
    }, 
    "categories": { 
     "category": [ 
      { 
       "label": "N.12/02" 
      }, 
      { 
       "label": "Pn.13/02" 
      }, 
      { 
       "label": "Wt.14/02" 
      }, 
      { 
       "label": "Śr.15/02" 
      }, 
      { 
       "label": "Cz.16/02" 
      }, 
      { 
       "label": "Pt.17/02" 
      }, 
      { 
       "label": "So.18/02" 
      } 
     ] 
    }, 
    "dataset": [ 
     { 
      "seriesname": "IRDN", 
      "data": [ 
       { 
        "value": "142.59" 
       }, 
       { 
        "value": "174.88" 
       }, 
       { 
        "value": "176.97" 
       }, 
       { 
        "value": "182.48" 
       }, 
       { 
        "value": "160.15" 
       }, 
       { 
        "value": "160.72" 
       }, 
       { 
        "value": "165.47" 
       } 
      ] 
     }, 
     { 
      "seriesname": "SIRDN", 
      "data": [ 
       { 
        "value": "148.81" 
       }, 
       { 
        "value": "197.29" 
       }, 
       { 
        "value": "202.27" 
       }, 
       { 
        "value": "211.93" 
       }, 
       { 
        "value": "177.87" 
       }, 
       { 
        "value": "179.37" 
       }, 
       { 
        "value": "177.69" 
       } 
      ] 
     }, 
     { 
      "seriesname": "IRDN24", 
      "data": [ 
       { 
        "value": "140.31" 
       }, 
       { 
        "value": "174.50" 
       }, 
       { 
        "value": "180.38" 
       }, 
       { 
        "value": "187.70" 
       }, 
       { 
        "value": "161.91" 
       }, 
       { 
        "value": "161.62" 
       }, 
       { 
        "value": "160.98" 
       } 
      ] 
     }, 
     { 
      "seriesname": "IRDN8.22", 
      "data": [ 
       { 
        "value": "147.33" 
       }, 
       { 
        "value": "197.02" 
       }, 
       { 
        "value": "202.21" 
       }, 
       { 
        "value": "211.28" 
       }, 
       { 
        "value": "178.11" 
       }, 
       { 
        "value": "179.32" 
       }, 
       { 
        "value": "176.31" 
       } 
      ] 
     } 
    ] 
} 
+0

Ich habe meine Daten-Array in diese Funktion übergeben, aber es löschte es vollständig. wenn ich ein Ergebnis zurückgebe, habe ich 'null'. '$ arrData = clear_array ($ arrData); $ jsonEncodedData = json_encode ($ arrData); echo $ jsonEncodedData; ' – piotr

+0

Ich benutzte Ihre json Eingabe als Test über die folgende Zeile' $ arr = json_decode ($ x, $ assoc = true); clear_array ($ arr); ' Und es funktioniert super –

+0

Works, danke :) – piotr

Verwandte Themen