【发布时间】:2012-12-28 01:43:49
【问题描述】:
所以我有一个 MySQL 表:
Table Data:
id | domain | title | Full Url to Page | ... etc ...
1 | place.com | Place Something | http://place.com/1...
2 | place.com | Place Something Else | http://place.com/2...
3 | place.com | Some Other Place | http://place.com/3...
4 | pets.com | Cats Dogs Oh My | http://pets.com/2....
5 | pets.com | Bird Edition | http://pets.com/3....
我需要(在 PHP/JQuery 中)为每个唯一域获取一个 id 数组。所以我想要上表的最终输出是:
$finalArray = array('place.com' => array(1, 2, 3), 'pets.com' => array(4, 5));
我目前的解决方案是获取按域排序的所有行,这是 MySQL 语句:
SELECT `id`, `domain` FROM `gsort_linkdata` ORDER BY `domain`
返回:
1 | place.com
2 | place.com
3 | place.com
4 | pets.com
5 | pets.com
然后我循环遍历 PHP 中的行并将它们分解为数组。我宁愿从数据库中提取已经分解的数据。那可能吗?谢谢!
【问题讨论】:
-
我觉得您所拥有的可能是最好的,因为您将 1) 只访问数据库一次,并且 2) 由于排序的原因,能够简单地一次性创建数组。
-
我同意。我之前已经多次处理过这种相同类型的问题——使用多层嵌套数组。您不能从 SQL 数据库返回嵌套数组。您在 PHP 中间件中循环和构建响应的解决方案是最好的解决方案。
-
谢谢大家。我只是不确定我是否知道最好的解决方案。我总觉得一定有更好、更快、更强的东西,所以很高兴知道我选对了。