4

我正在尝试从 PHP 数组创建各种标准的 HTML 列表样式,用于我正在构建的电影数据库,这是我在大学的最后一年项目的一部分,但是我在访问/理解如何执行此操作时遇到了一些问题。我已经从我正在使用的各种 API 中获得了相关数据,但我想动态创建整个列表,并在适当的地方放入正确的信息位。

下面是我要创建的两种列表样式的详细信息。

列表样式 1 - 角色/演员详情

对于第一种列表样式,我想将其创建为:

<ul>
   <li>Cast name - Character name</li>
   <li>Cast name - Character name</li>
   <li>etc. etc.</li>
<ul>

我直接来自数组的数据集如下所示:

Array
(

[abridged_cast] => Array
    (
        [0] => Array
            (
                [name] => Daniel Craig
                [id] => 162687443
                [characters] => Array
                    (
                        [0] => James Bond
                    )

            )

        [1] => Array
            (
                [name] => Javier Bardem
                [id] => 162661456
                [characters] => Array
                    (
                        [0] => Silva
                    )

            )

        [2] => Array
            (
                [name] => Judi Dench
                [id] => 162652435
                [characters] => Array
                    (
                        [0] => M
                    )

            )

        [3] => Array
            (
                [name] => Ralph Fiennes
                [id] => 162653681
                [characters] => Array
                    (
                        [0] => Gareth Mallory
                        [1] => Mallory
                    )

            )

        [4] => Array
            (
                [name] => Naomie Harris
                [id] => 162705781
                [characters] => Array
                    (
                        [0] => Eve
                    )

            )

    )

在上面的示例中,有五个演员及其各自的角色名称,但是在其他一些示例中,多于或少于五个,因此,理想情况下,我希望系统知道无论给了多少演员并创建一个每个列表,最多 10 个名称。

列表样式 2 - 视频

与上一种样式类似,但是此列表希望如下所示:

<ul>
    <li><a href='<http://youtube.com/<dynamically generated URL direct to the clip>'><img src='dynamically generated URL to the clip's thumbnail' /></a></li>
    <li>same as above...</li>
</ul>

源数组如下所示:

Array
(
[id] => 37724
[youtube] => Array
    (
        [0] => Array
            (
                [name] => Trailer
                [size] => HQ
                [source] => 24mTIE4D9JM
            )

        [1] => Array
            (
                [name] => Official Trailer
                [size] => HD
                [source] => 6kw1UVovByw
            )

        [2] => Array
            (
                [name] => Trailer 1
                [size] => HD
                [source] => 1Uyjf5Pp0Ko
            )

        [3] => Array
            (
                [name] => Trailer 2
                [size] => HD
                [source] => 5Ejo9_3iUpw
            )

    )

)

为这篇文章的长度道歉,提前感谢任何可以提供帮助的人!

4

1 回答 1

1

您正在寻找的东西称为 foreach 循环。对于您的第一个示例,它看起来像这样:

foreach($dataSet['abridged_cast'] as $castMember){
    echo '<li>'.$castMember['name'].'-'.implode(', ', $castMember['characters']). '</li>';
}

现在这个例子纯粹是说明性的,尽管它最明确地是初学者的方法。尽管如此,我还是强烈建议研究 MVC 模式和 PHP 框架,例如 YII。如果部署和配置正确,YII 的所有优点应该可以为您完成所有重复的工作。

我已经看到您的问题包含两个部分,尽管我不愿意为第二个部分编写示例,因为它实际上与第一个部分相同并且需要适当注意 - 您将走上正轨并弄清楚。

于 2012-12-05T21:50:15.620 回答