【问题标题】:PHP foreach to iterate json dataPHP foreach 迭代 json 数据
【发布时间】:2012-06-30 04:08:25
【问题描述】:

我很长时间以来第一次使用 json 和第一次使用 php,但我在这两个方面遇到了障碍。

我创建了一个包含 json 提要的 javascript 文件,并已使用 php 成功对其进行解码,现在可以访问数据(一次一个项目),但在尝试迭代它并吐出时遇到了障碍使用所有数据列出项目。

我们将不胜感激。

josn 看起来像这样:

{
    "data": [
        {
            "name": "name1",
            "alt": "name one",
            "imgUrl": "img/icons/face1.png",
            "linkUrl": "linkurl"
        },
        {
            "name": "name2",
            "alt": "name two",
            "imgUrl": "img/icons/face2.png",
            "linkUrl": "linkurl"
        }
    ]
}

和 php:

<?php
$json_url = "js/tiles/jsonfeed.js";
$json = file_get_contents($json_url);
$links = json_decode($json, TRUE);
?>
<ul>
    <li>
    <a href="<?php echo $links['data'][1]['linkUrl'] ?>"><img scr="<?php echo $links['data'][1]['imgUrl']; ?>" alt="<?php echo $links['data'][1]['alt']; ?>" class="share-icon" /></a>
    </li>
</ul>

现在显然这只会获取第二个数组槽中的信息,而且我知道有一种更有效的方法来编写列表项,而无需跳入和跳出 php,并且很快就会清理干净。

我遇到的问题是尝试将其包装在 foreach 循环中,以便为 json 提要中的每个项目吐出一个列表项。作为 json 新手,并且有一段时间没有接触过 php,我很难正确格式化循环并获取适当的数据。

有人可以帮我让它正常工作吗?

谢谢

【问题讨论】:

    标签: php json foreach


    【解决方案1】:

    这应该可以完成工作:

    <?php
    $json_url = "js/tiles/jsonfeed.js";
    $json = file_get_contents($json_url);
    $links = json_decode($json, TRUE);
    ?>
    <ul>
    <?php
        foreach($links['data'] as $key=>$val){ 
    ?>
        <li>
        <a href="<?php echo $val['linkUrl'] ?>">
            <img scr="<?php echo $val['imgUrl']; ?>" alt="<?php echo $val['alt']; ?>" class="share-icon" />
        </a>
        </li>
    <?php
        }
    ?>
    </ul>
    

    【讨论】:

    • 你为什么要把它转换成一个key val对?
    【解决方案2】:

    你的 foreach 循环应该像这样遍历$links['data']

    foreach($links['data'] as $item) {
        echo $item['linkUrl'];
    }
    

    【讨论】:

      【解决方案3】:

      您只需要 foreach 数据,然后依次处理每个孩子:

      foreach ($links['data'] AS $d){
          echo $d['linkUrl'];
      }
      

      【讨论】:

        猜你喜欢
        • 2017-12-22
        • 1970-01-01
        • 2016-01-10
        • 2013-03-30
        • 1970-01-01
        • 1970-01-01
        • 2015-08-21
        • 2016-05-23
        • 2012-11-29
        相关资源
        最近更新 更多