【发布时间】:2020-08-10 03:22:01
【问题描述】:
我有一个数组,其中包含电影信息以及它们将在电影院放映的时间。每次放映都是另一个结果,因此一部电影可以多次出现在阵列中。我想将重复的电影条目合并为一个,并将所有节目放在新数组的另一个维度中。格式是这样的:
Array (
[title] => title
[synopsis] => synopsis
[poster] => poster
[cast] => cast
[director] => director
[length] => length
[rating] => rating
[datetime] => datetime )
应格式化为:
Array (
[title] => title
[synopsis] => synopsis
[poster] => poster
[cast] => cast
[director] => director
[length] => length
[rating] => rating
[datetime] => Array
( [0] => datetime0
[1] => datetime1
... )
)
有没有人知道如何在“标题”之后将它组合起来,并将日期时间的所有条目放在一个新的维度中。 感谢您的帮助!
【问题讨论】:
-
您是从数据库中获取这些数据吗?如果是,你为什么不使用
SELECT * from films GROUP BY title? -
@nelsonrakson 好点,但作者可能会从其他类型的数据库中读取此数据。
-
我正在从数据库中获取它们。从两张桌子tbh。一张表是电影的详细信息,另一张表是电影每次放映的日期时间。我可以按标题分组,但必须使用 foreach 并获取每部电影的节目。
-
用 sql 对这些数据进行分组更直接、更专业。您不需要执行任何迭代查询。您在 SELECT 中使用
GROUP BY和GROUP_CONCAT()。在您创建了一个以逗号分隔的放映时间列表后,当您想要展示数据时,只需在逗号上展开即可。这还可以让您根据电影名称对结果集进行排序,并且通常将大部分逻辑打包到您的查询中——这将是最容易阅读和管理的地方。下次您提出问题时,请务必包含您的最佳编码尝试——这是预期的。
标签: php arrays multidimensional-array