数组结果的数组结构

时间:2009-07-25 22:59:37

标签: php sql

这可能是一个非常简单的问题,但是这些方法中的哪一种是为返回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++;
}

2 个答案:

答案 0 :(得分:3)

第二个更好,更简单的设置:

while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $posts[] = $row;
}

// total number of posts
$nrPosts = count($post);

这将以数字方式自动索引数组,并且您不需要将$ row中的任何内容复制到$ post中,它只需复制整行。

第二种结构更好:

  • 它将帖子的数据逻辑分组为结构
  • 它不需要处理数据,而不是初始填充$ post-array
  • 您可以使用单个索引/索引范围轻松处理任意数量的博客帖子

答案 1 :(得分:1)

输出时无法使数据结构看起来不正确。第二个数据集也更有用,这就是为什么它被用在像Wordpress这样的大型项目中。