【问题标题】:Get JSON value as PHP variable [duplicate]获取 JSON 值作为 PHP 变量 [重复]
【发布时间】:2015-07-30 22:19:21
【问题描述】:

我有一个 JSON,我想将 JSON 的值作为 PHP 变量。如果我回显变量$jne,结果将是这样的。

{
"rajaongkir":{
  "query":{
     "origin":"501",
     "destination":"114",
     "weight":1700,
     "courier":"jne"
  },
  "status":{
     "code":200,
     "description":"OK"
  },
  "origin_details":{
     "city_id":"501",
     "province_id":"5",
     "province":"DI Yogyakarta",
     "type":"Kota",
     "city_name":"Yogyakarta",
     "postal_code":"55000"
  },
  "destination_details":{
     "city_id":"114",
     "province_id":"1",
     "province":"Bali",
     "type":"Kota",
     "city_name":"Denpasar",
     "postal_code":"80000"
  },
  "results":[
     {
        "code":"jne",
        "name":"Jalur Nugraha Ekakurir (JNE)",
        "costs":[
           {
              "service":"OKE",
              "description":"Ongkos Kirim Ekonomis",
              "cost":[
                 {
                    "value":38000,
                    "etd":"4-5",
                    "note":""
                 }
              ]
           },
           {
              "service":"REG",
              "description":"Layanan Reguler",
              "cost":[
                 {
                    "value":44000,
                    "etd":"2-3",
                    "note":""
                 }
              ]
           },
           {
              "service":"SPS",
              "description":"Super Speed",
              "cost":[
                 {
                    "value":349000,
                    "etd":"",
                    "note":""
                 }
              ]
           },
           {
              "service":"YES",
              "description":"Yakin Esok Sampai",
              "cost":[
                 {
                    "value":98000,
                    "etd":"1-1",
                    "note":""
                 }
              ]
           }
        ]
     }
  ]
 }
 }

这就是我尝试获取价值的方式,我想在“成本”中获取“价值”

$content = $jne;
$json = json_decode($content, true);

$value = $json[results][0][costs][1][cost][0][value];

感谢您的帮助..

【问题讨论】:

  • 为数组索引添加引号(例如:$json['results'])
  • 你要使用哪个json值
  • @Sunil Pachlangia “成本”中的“价值”
  • 顺便说一句,有 4 种不同的“成本”,每种都有“价值”。

标签: php json


【解决方案1】:

那里有不止一个“价值”。这将为您提供所有 4 个值:

$json = json_decode($content, true);

$values = Array();
foreach($json['rajaongkir']['results'][0]['costs'] as $cost) {
    $values[] = $cost['cost'][0]['value'];
}
print_r($values);

输出:

Array
(
    [0] => 38000
    [1] => 44000
    [2] => 349000
    [3] => 98000
)

【讨论】:

  • 感谢您分享您的宝贵知识..
【解决方案2】:

如果您正在寻找值“44000”,那么您的查询应该是:

$value = $json['rajaongkir']['results'][0]['costs'][1]['cost'][0]['value'];

【讨论】:

  • 非常感谢 Jake.... 它有效..
  • 没问题。请接受我的回答:)
  • 好的,我接受了
猜你喜欢
  • 2017-01-08
  • 1970-01-01
  • 2016-04-12
  • 2018-08-30
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-15
相关资源
最近更新 更多