数据库结果的数组结构
Posted
技术标签:
【中文标题】数据库结果的数组结构【英文标题】:array structure of database results 【发布时间】:2009-07-25 22:59:36 【问题描述】:这可能是一个非常微不足道的问题,但是这些方法中的哪一个是构造数组以返回 db 结果的最佳实践?说一个博客文章列表...对文章进行排序和分组?或对元素进行排序和分组?
Array
(
[title] => Array
(
[0] => Untitled
[1] => Untitled
)
[id] => Array
(
[0] => 8
[1] => 11
)
)
或
Array
(
[0] => Array
(
['id']=> 8
['title'] => Untitled
)
[1] => Array
(
['id']=> 11
['title'] => Untitled
)
)
第一种方法似乎是最简单的,也是我一直在做的。我可以简单地:
while ($row = $result->fetch(PDO::FETCH_ASSOC))
$post['title'][] = $row['title'];
$post['id'][] = $row['id'];
然后
$count = count($post['id']);
但第二种方式似乎更有意义,并且更符合逻辑地构建信息。在模板中设置、过滤和使用只是稍微复杂一些。
$c = 0;
while ($row = $result->fetch(PDO::FETCH_ASSOC))
$post[$c]['title'] = $row['title'];
$post[$c]['id'] = $row['id'];
$c++;
【问题讨论】:
【参考方案1】:第二个更好,设置更简单:
while ($row = $result->fetch(PDO::FETCH_ASSOC))
$posts[] = $row;
// total number of posts
$nrPosts = count($post);
这将自动对数组进行数字索引,您无需将任何内容从 $row 复制到 $post,它会简单地复制整行。
第二种结构更好:
它将帖子的数据逻辑分组到一个结构中 它不需要处理数据,只需要初始填充 $post-array 您可以使用单个索引/索引范围轻松处理任意数量的博客文章【讨论】:
感谢您解决这个问题。我希望大多数书都涵盖这些小事。【参考方案2】:在输出时创建看起来不正确的数据结构是没有用的。第二个数据集也更有用,这就是为什么它被用于像 Wordpress 这样的大型项目中。
【讨论】:
以上是关于数据库结果的数组结构的主要内容,如果未能解决你的问题,请参考以下文章
C/C++数据结构-完整代码数据结构的理论,线性表(动态数组,链表)(完整的算法代码-增删改查-代码解析+运行结果解析)
输出之一在简单的struct程序上显示(空)结果(无结构数组)