2016-01-22 77 views
0

好吧,我希望這不是和其他問題一樣,我也尋找類似的東西,但是找不到答案......所以這裏就是這樣。 我得到一個JSON文件,需要將內容讀入數據庫。沒有汗水。 但是我有閱讀最低級別的問題,因爲可以有一個重複的數組。我有所有的數據到「comp」。從JSON文件中讀取多級數組的部分

樣品JSON文件:

{ 
"code" : 0, 
"format" : 2, 
"s_data" : 
{ 
    "name" : "Lance", 
    "club" : "Southern" 
}, 
"d_data" : 
{ 
    "errorcode" : 3, 
    "errormsg" : "" 
}, 
"timing" : 
{ 
    "elapsed_time" : "08:29", 
    "elapsed_time_secs" : 509, 
    "comp" : 
    [ 
     { 
      "no" : 
      [ 
      { 
        "sno" : 0, 
        "xpos" : 230.9, 
        "ypos" : 97.2 
       }, 
       { 
        "sno" : 1, 
        "xpos" : 132.4, 
        "ypos" : 258.3 
       }, 
       { 
        "sno" : 2, 
        "xpos" : 135.5, 
        "ypos" : 176.7 
       }, 
      ] 
     }, 
     { 
      "no" : 
      [ 
      { 
        "sno" : 0, 
        "xpos" : 250.9, 
        "ypos" : 92.2 
       }, 
       { 
        "sno" : 1, 
        "xpos" : 182.4, 
        "ypos" : 158.3 
       }, 
       { 
        "sno" : 2, 
        "xpos" : 145.5, 
        "ypos" : 192.7 
       } 
      ] 
     } 
    ] 
} 
} 

所以我想現在讀 「無」 的數據,而只是 「不」 ...這是第一個實例:SNO,XPOS,ypos的foreach「SNO 「項..

我在想:

$mydata = json_decode(sample.json, true); 
foreach($mydata->comp[0]->no as $values) 
{ 
    echo $values->sno . "\n"; 
} 

我得不到任何回報。 讚賞的任何協助。

+0

'foreach($ mydata-> comp [0] - > no as $ values' even even ?! – Naruto

+0

第二個參數'true''$ mydata'將會是一個數組''Var_dump()' –

+0

@u_mulder - 謝謝,好主意,看看PHP在陣列中看到的是什麼 – Lance

回答

0

如果你在一個關聯數組解碼它,你必須根據使用它,試試這個代碼:

foreach($mydata['timing']['comp'][0]['no'] as $values) 
{ 
       echo $values['sno'] . "\n"; 
} 

所有訪問$mydata使用數組風格的符號。

您還必須考慮發佈的不是有效的JSON字符串。

編輯20160122: JSON字符串現在是有效的。

+0

謝謝 - 你是一個明星! – Lance

+0

以下u_mulder的答案我做了一個var_dump並可以看到數組結構。而且伊戈爾用代碼完美地回答了這個問題。 – Lance