【发布时间】:2014-11-14 01:38:28
【问题描述】:
我可能做错了,但我真的需要帮助来掌握如何处理嵌套数组。我有两个表用户和评论。
这是我正在使用的 SELECT 语句:
SELECT *
FROM `users`
LEFT JOIN `reviews`
ON users.userId = reviews.user_id
WHERE installation_id = $installation_id
这就是我接收数组的方式:
Array
(
[0] => Array
(
[userId] => 60
[usersEmail] => gggg@gmail.com
[password] => 0Vg+sLdlALchd39l+3K3QXFZlvh79bwqXFp/J3nIR+o=
[usersName] => Lauren
[role] => scout
[id] => 1
[user_id] => 60
[client_id] => 62
[comments] => This person was extremely professional and went above and beyond. Her pricing was reasonable.
[stars] => 4
)
[1] => Array
(
[userId] => 60
[usersEmail] => gggg@gmail.com
[password] => 0Vg+sLdlALchd39l+3K3QXFZlvh79bwqXFp/J3nIR+o=
[usersName] => Lauren Rothlisberger
[role] => scout
[id] => 2
[user_id] => 60
[client_id] => 1
[comments] => She was pretty good. I have a couple small complaints but overall decent experience.
[stars] => 3
)
[2] => Array
(
[userId] => 63
[usersEmail] => proth@mail.com
[password] =>
[usersName] => Paul Rothlisberger
[role] =>
[id] =>
[user_id] =>
[client_id] =>
[comments] =>
[stars] =>
)
)
这件事对我来说毫无意义。我认为它会更像
[1] => Array
(
[userId] => 60
[usersEmail] => gggg@gmail.com
[password] => 0Vg+sLdlALchd39l+3K3QXFZlvh79bwqXFp/J3nIR+o=
[usersName] => Lauren Rothlisberger
[role] => scout
[id] => 2
[user_id] => 60
[client_id] => 1
Array [0](
[comments]
[stars] )
)
如何获得该数组?此外,他们如何遍历用户,然后向每个用户显示他们所有的 cmets 和星星。
我也不知道如何找到 UserId = 60 的星星,然后给出该用户的平均星星。
感谢您为我提供的任何帮助。我显然缺少一些基础知识。请不要指向我已经通过它并且无法应用它的文档。
【问题讨论】:
-
只使用mysql查询你不能这样做你必须在你的结果之上执行循环来准备这样的数组
-
更新你的代码你到目前为止所尝试的
-
许多 PHP 框架(Laravel、CakePHP 等)能够按照您的预期在查询输出中组织表关系,但仅 SQL 只能处理二维结果集。如果你在一个普通的 MySQL 客户端中执行相同的查询,你的结果将是严格的表格。使用原始 PHP,您需要自己编写代码。
-
所以我完全误解了能够加入表的意义?你能给我举个例子吗。为什么我应该有一个表 users_reviews?
标签: php sql foreach multidimensional-array