为了账号安全,请及时绑定邮箱和手机立即绑定

Foreach json 输出并存储在变量中

Foreach json 输出并存储在变量中

PHP
慕村9548890 2021-10-15 17:43:49
我正在尝试从 json 代码中获取结果。我已经在 jsonlint 检查了 json 结果并且它已经过验证。我这样做:$result = curl_exec($curl);if(!$result){die("Connection Failure");}curl_close($curl);然后当我做 echo $result 这是结果:{"vat":{"640252":{"name":"0%","percentage":"0.00","invoice_type":"2","vat_code":"5B2","available":"1 "},"640258":{"name":"0%","percentage":"0.00","invoice_type":"1","vat_code":"1E1","available":"1"}, "640256":{"name":"21%","percentage":"21.00","invoice_type":"1","vat_code":"1A2","available":"1"}}}当我这样做时,它确实显示了增值税代码 640252 的名称:$result2 = json_decode($result, true);echo $result2['vat']['640252']['name'];但是我无法通过 foreach 浏览 json。首先想创建一个带有 id 的变量(如 640252)和一个带有百分比的变量,并在 foreach 中回显它们。我已经从 Stackoverflow 尝试了很多东西,但所有的 json 输出似乎都与我的输出不同。我希望有人能在正确的方向上帮助我。
查看完整描述

3 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

原因是,在解码 json 字符串后,vat 是一个带有值数组的键。只需按照以下示例迭代增值税属性。


$data = json_decode($result, true);


foreach ($data['vat'] as $id => $item) {

    echo "<pre>";

    var_dump($id, $item);

    echo "</pre>";

}

希望有帮助。


查看完整回答
反对 回复 2021-10-15
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

<?php

$json = '... lots of JSON here ...';


$arr = json_decode($json, true);


foreach ($arr['vat'] as $id => $item) {

    echo "$id -> {$item['name']}\n";

}

以您的 JSON 为例,这是我得到的输出:


640252 -> 0%

640258 -> 0%

640256 -> 21%

如果您不需要 ID(例如640252),您可以这样做:


foreach ($arr['vat'] as $item) {


查看完整回答
反对 回复 2021-10-15
  • 3 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信