【问题标题】:Create HTML lists from PHP arrays从 PHP 数组创建 HTML 列表
【发布时间】:2012-11-23 20:27:48
【问题描述】:

我正在尝试从 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
            )

    )

)

对于这篇文章的篇幅深表歉意,提前感谢任何可以提供帮助的人!

【问题讨论】:

  • 先告诉我们你尝试了什么

标签: php html arrays api


【解决方案1】:

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

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

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

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

【讨论】:

  • 谢谢!我确实认为它们几乎相同,并且看看您的示例,我相信在第二个示例中使用该方法几乎是不言自明的。感谢您的帮助,再次感谢。
猜你喜欢
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多