2015-06-06 68 views
-1

Json的關鍵所以我有一點JSON的,看起來像這樣:獲得來自陣列

{ 
    "workshops":[ 
     { 
      "workshop1":{ 
       "id":1 
      } 
     }, 
     { 
      "workshop2":{ 
       "id":2 
      } 
     }, 
     { 
      "workshop3":{ 
       "id":3 
      } 
     }, 
     { 
      "workshop4":{ 
       "id":4 
      } 
     } 
    ] 
} 

我想什麼做的就是workshop3不使用索引,所以我不能做

$ json [「workshop」] [2] [「workshop3」]

所以我的問題我怎麼能得到workshop3?如有必要,我可以重新設計Json文件。

+0

難道你不能循環$ json [「workshop」]並檢查當前項目是否爲「workshop3」? – VolenD

回答

0

你應該讓你的JSON字符串這樣一種方式:

{"workshops":{ 
     "workshop1":{"id":1}, 
     "workshop2":{"id":2}, 
     "workshop3":{"id":3}}} 

然後你就可以避開指標

$json = json_decode($str, true); 
var_dump($json["workshops"]["workshop3"]); 

結果:

array(1) { 
    ["id"]=> 
    int(3) 
} 
-1

沒有重新設計JSON,你可以使用函數​​,它返回鍵的數組,例如:

$keys = ['workshops1', 'workshops2', 'workshops3']; 
$keyName = $keys[2]; 
$workhopValue = $json['workshops'][$keyName]; 

但它是壞的解決方法,恕我直言。

+0

沒有重新設計JSON'$ workhopValue = $ json ['workshops'] [$ keyName];'不起作用。只有'$ json ['workshops'] [2] [$ keyName];''當keyname'是'workshops2'時 – splash58