从PHP数组创建HTML列表

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
            )

    )

)

很抱歉这篇文章有点长,提前感谢任何能够提供帮助的人!


1
请先告诉我们你尝试过什么。 - Squazic
1个回答

1
你要找的东西叫做 foreach 循环。对于你的第一个例子,它应该是这样的:
foreach($dataSet['abridged_cast'] as $castMember){
    echo '<li>'.$castMember['name'].'-'.implode(', ', $castMember['characters']). '</li>';
}

现在这个例子纯粹是为了说明,虽然它绝对是初学者的方法。 但我强烈建议研究MVC模式和PHP框架,例如YII。如果正确部署和配置YII及其所有好处,应该可以为您完成所有重复的工作。

我看到你的问题包含两个部分,尽管我不愿意为第二部分编写示例,因为它实际上与第一部分几乎相同,只要认真关注,你就能找到正确的方向并解决它。


谢谢!我本来就认为它们差不多,看了你的例子后,我相信使用那种方法处理第二个例子会很容易理解。非常感谢你的帮助,再次感谢。 - Alex Ryans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接