【问题标题】:How to select value from JSON array如何从 JSON 数组中选择值
【发布时间】:2014-03-02 18:56:26
【问题描述】:

我正在尝试从数组中选择一个变量(至少我认为它是作为数组存储的):

$data = json_encode($response);
file_put_contents('file.txt', $data);

给予

"status":200,"response":{

"api_id":"0f42d6be-8ed2-11e3-822e-22135",
"bill_duration":36,
"call_duration":36,
"total_rate":"0.00300"}

}

如何选择call_duration 值(在 php 中)?我试过$response['call_duration'],我认为它应该可以工作,但什么也没返回?

【问题讨论】:

  • 这是一个 JSON 对象。
  • 我不了解 php,但如果响应中有 JSON,我可以执行 var object = JSON.parse(response) 之类的操作并访问您的属性,例如 object.call_duration
  • 你们看得太远了。他已经有一个名为 $response 的 php 数组。然后将其转换为 json 并将其放入文件中进行检查。题目问如何获取call_duraton的值,很简单:$response['response']['call_duration']
  • 当您执行print_r($response) 时会发生什么。这通常是找出如何从结构中访问元素的最简洁的方法。
  • @DanielHoward 是的 - 在您发表评论之前我就意识到了这一点。我认为你说得对。

标签: php arrays json


【解决方案1】:

$response['call_duration'] 几乎是正确的,但我认为您需要:

$response['response']['call_duration']

在转换为 json 后查看您的输出,我认为原始数组 $response 看起来像这样(PHP 数组格式)

$response = array(
  'status'=>200,
  'response'=>array(
    'api_id'=>'0f....etc',
    'bill_duration'=>36,
     ... etc
  )
);

因此,您需要对数组进行更深入的处理才能获得call_duration

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 2020-12-19
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    相关资源
    最近更新 更多