【问题标题】:I Need Help, Problems with Foreach and JSON [closed]我需要帮助,Foreach 和 JSON 的问题 [关闭]
【发布时间】:2019-06-04 18:55:23
【问题描述】:

我正在通过 PHP 进行 foreach,JSON 格式如下:

[
    {
        "ID": "1",
        "NAME": "Enterprise 1",
        "DOC": "0000000000001",
        "EST": "1"
    },
    {
        "ID": "2",
        "NAME": "Enterprise 2",
        "DOC": "0000000000003",
        "EST": "3"
    }
]

但是,当使用 foreach 和 PHP 时,它只返回最后一条 JSON 记录,我做错了什么?

<?php
  $Enterprise = JSON_Decode($JSON, true);

  foreach($Enterprise as $Key => $Ent);
  {echo $Ent['NAME'].'</br>';}
?>

不是在每一行都向我返回 Enterprise,而是返回 Enterprise 2。有什么建议吗?

【问题讨论】:

  • 因为; 终止了foreach,而echo 在之后执行。删除;
  • 当你遍历数组并且 $Ent 仍然在范围内时,你总是会取回最后一个元素。
  • 谢谢我的朋友,真的是;,我都没注意到,谢谢!

标签: php json foreach


【解决方案1】:

您的foreach 后面似乎有一个杂散分号,导致循环体为空。

foreach($Enterprise as $Key =&gt; $Ent);

删除分号,您的foreach 正文将按预期执行。

【讨论】:

  • 什么;不会造成哈哈,给您带来的不便,我很抱歉,我没有真正看到。
【解决方案2】:

在这里,我们可以稍微修改您的原始代码。问题只是一个常见的; 问题:

$Enterprise = '[
    {
        "ID": "1",
        "NAME": "Enterprise 1",
        "DOC": "0000000000001",
        "EST": "1"
    },
    {
        "ID": "2",
        "NAME": "Enterprise 2",
        "DOC": "0000000000003",
        "EST": "3"
    }
]';

$Enterprise = json_decode($Enterprise, true);

foreach ($Enterprise as $Key => $Ent) {

    echo $Ent['NAME'] . "\n";

}

输出

Enterprise 1
Enterprise 2

【讨论】:

  • 是的,foreach 行末尾的这个; 是问题……没见过。
  • 您实际上并没有提及您更改的什么,这对每个读者来说可能都不是非常明显。您的回答基本上是“要解决您的问题,我们只需要修改您的代码 {code dump}”
猜你喜欢
  • 1970-01-01
  • 2011-09-10
  • 2022-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-21
  • 2014-09-12
  • 1970-01-01
相关资源
最近更新 更多