2017-01-25 7 views
0

私は、このコードは、基本的にはいくつかの行を取り、4アレイ

もともとデータがこの形式で来るのグループで配列に入れて持っている:

line1 
line2 
line3 
line4 
line5 
line6 
line7 
line8 

と、このコードでI配列に行を渡す:

$addresses = []; 
foreach (preg_split("/((\r?\n)|(\r\n?))/", $nodes) as $line) { 
    $temp[] = trim($line); 
    if(count($temp) == 4){ 
     array_push($addresses,[ 
        'ADDRESS' => $temp[0], 
        'STREET_NAME' => $temp[1], 
        'TOWN_NAME' => $temp[2], 
        'POST_CODE' => $temp[3] 
       ]); 
     $temp = []; 
    } 
} 
var_dump(json_encode($addresses,JSON_PRETTY_PRINT)); 

しかし、その結果、そのない私が欲しいもの...:

{ 
    "1": { 
     "ADDRESS": "10", 
     "STREET_NAME": "TRIQ ID-DAR TA` PULTU", 
     "TOWN_NAME": "BIRZEBBUGA", 
     "POST_CODE": "BBG 1810" 
    }, 
    "2": { 
     "ADDRESS": "12", 
     "STREET_NAME": "TRIQ ID-DAR TA` PULTU", 
     "TOWN_NAME": "BIRZEBBUGA", 
     "POST_CODE": "BBG 1810" 
    } 
} 

と私はインデックスをたくない...

私はこのような何かが必要です。

[ 
{ 
    "ADDRESS": "10", 
    "STREET_NAME": "TRIQ ID-DAR TA` PULTU", 
    "TOWN_NAME": "BIRZEBBUGA", 
    "POST_CODE": "BBG 1810" 
}, 
{ 
    "ADDRESS": "12", 
    "STREET_NAME": "TRIQ ID-DAR TA` PULTU", 
    "TOWN_NAME": "BIRZEBBUGA", 
    "POST_CODE": "BBG 1810" 
} 
] 

間違いについての任意のアイデアを???

+0

にこのデータを取得するとき、これはPHPとJavaScript同等に適用されます。あなたが得ている結果は、その中に鍵がある理由がオブジェクトにあるということです。しかし、あなたのコードはうまくいきます。配列にデータをマージしているのでおそらくオブジェクトを取得しません。再度出力を確認してください。 –

答えて

1

これは、あなたが

$nodes = 'line1 
line2 
line3 
line4 
line5 
line6 
line7 
line8 
'; 

$addresses = []; 
foreach (preg_split("/((\r?\n)|(\r\n?))/", $nodes) as $line) { 
    $temp[] = trim($line); 
    if(count($temp) == 4){ 
     $obj = new stdClass(); 
     $obj->ADDRESS = $temp[0]; 
     $obj->STREET_NAME = $temp[1]; 
     $obj->TOWN_NAME = $temp[2]; 
     $obj->POST_CODE = $temp[3]; 

     $addresses[] = $obj; 
     $temp = []; 
    } 
} 
var_dump(json_encode($addresses,JSON_PRETTY_PRINT)); 

結果を求めているものを作成します。

string(266) "[ 
    { 
     "ADDRESS": "line1", 
     "STREET_NAME": "line2", 
     "TOWN_NAME": "line3", 
     "POST_CODE": "line4" 
    }, 
    { 
     "ADDRESS": "line5", 
     "STREET_NAME": "line6", 
     "TOWN_NAME": "line7", 
     "POST_CODE": "line8" 
    } 
]" 

しかし、あなたは符号化されたデータを見て、その後、PHPデータ型に戻ってデコードするとき、あなたはまだあなたを取得します配列はインデックスを持たなければならないため、オブジェクトは数値でインデックス付けされます。あなたはあなたがインデックスを望んでいないことを呼び出すことができますjavascriptの

print_r(json_decode(json_encode($addresses))); 

結果

Array 
(
    [0] => stdClass Object 
     (
      [ADDRESS] => line1 
      [STREET_NAME] => line2 
      [TOWN_NAME] => line3 
      [POST_CODE] => line4 
     ) 

    [1] => stdClass Object 
     (
      [ADDRESS] => line5 
      [STREET_NAME] => line6 
      [TOWN_NAME] => line7 
      [POST_CODE] => line8 
     ) 

)