试图传递一个foreach循环,但它得到一个无效的参数。这是为什么?

时间:2015-10-28 15:32:25

标签: php foreach

我尝试了if(is_array())并且我再次出现h1标题而不是错误,但这对我没什么帮助。我在phpcodechecker上尝试了这个代码,它说它没有任何问题,但在我的浏览器上,我一直得到foreach()的无效参数。我尝试将$ json更改为$ jsondata,仍然没有。有人可以帮助我弄清楚为什么或这个foreach如何成为无效的论点?

<?php
        $jsondata = file_get_contents("movies.json");
        $json = json_decode($jsondata, true);
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <style>
                h1 {text-align: center;}
                h4 {margin:0; padding:5px; background:#f4f4f4;}
                li{list-style:none; padding-left:5px;}
                #container {width: 600px;}
            </style>

            <title>PHP Loops: My Movies</title>

        </head>

        <body>
            <div id="container">
                <h1>My Favorite Movies</h1>
                <ul>
    <?php

    foreach($json['movies.json'] as $key => $value) {
            echo '<h4>'.$value['title'].'</h4>';
            echo '<li>Year: '.$value['year'].'</li>';
            echo '<li>Genre: '.$value['genre'].'</li>';
            echo '<li>Director: '.$value['director'].'</li>';
        }



    ?>
                </ul>
            </div>


        </body>

    </html>

1 个答案:

答案 0 :(得分:-1)

从评论中更新:

.json文件中的数据很糟糕,在解码时会导致错误。

它应该如下所示:http://pastebin.com/LePFwVzW。你应该遍历$json['movies']