如何使用PostgreSQL创建多维数组并且PHP能够处理它?

时间:2010-11-29 12:39:43

标签: php arrays postgresql multidimensional-array

嘿,
我想从三个表中收集数据,但我真的不知道如何做到这一点,因为我想创建多维数组并使用它们与PHP。我是pgsql的新手,所以我真的不知道限制是什么:) 那么有人能告诉我如何创建一个简单的pgsql数组吗?

感谢

2 个答案:

答案 0 :(得分:1)

在Postgre中有array-datatypes(几乎每种普通数据类型的数组版本)。但我不建议使用它们,特别是与PHP结合使用。因为使用当前的数据库函数,它将以字符串形式返回数组。它也违背了关系数据库的目的,其中数组应被视为一列的行数。不是单列的单行。

试着回答你的问题。你的problaby应该将多维数组的“最深”元素视为数据库中的“行”。其中有几列指定了获取值所需的路径。

示例:

while($row = $result->fetch_object()) {

  $multi_array[$row->base][$row->layer] = $row->value

}

答案 1 :(得分:0)

通常,数据库将返回精简结果的平面数组。因此,您最有可能无法执行单个查询以最终方式获得嵌套项目。但是,我没有使用过PostgreSQL。

我的建议是进行多次查询以获取所需的数据,然后将它们置于所需的配置中。

也许与Postgre合作的人可以确认一下?