0
我正在写一个基于流畅接口的我的网站的数据库类。首先,我收集所有有意义的术语,然后将它们放入“堆栈”,这基本上是一个数组。然后,我将它们排序,以便它们出现在实际的SQL查询中。合并/删除具有相同子项的数组
const stmt_select = 1;
const stmt_insert = 2;
const stmt_delete = 3;
const sql_select = 10;
const sql_from = 11;
const sql_into = 12;
const sql_where = 13;
const sql_join = 14;
const sql_group = 15;
const sql_order = 16;
const sql_limit = 17;
例如,下面的查询(虽然在一个总的垃圾顺序,并且故意试图抛出类关闭):
Query::Select('name', 'age', 'height')
->Order('a')
->From('table')
->From('asd')
->Group('a')
->Execute();
..生产:
Array
(
[0] => Array
(
[0] => 10
[1] => Array
(
[0] => name
[1] => age
[2] => height
)
)
[1] => Array
(
[0] => 11
[1] => asd
)
[2] => Array
(
[0] => 11
[1] => table
)
[3] => Array
(
[0] => 15
[1] => a
)
[4] => Array
(
[0] => 15
[1] => a
)
)
的问题我有一些数组成员我想合并在一起(例如多个 - >选择()/ - > Where()子句)和一些数组成员我想完全删除如果有多个实例,因为它不可能因为那里有多个(例如 - > Limit(), - > Order()),但是我不完全确定最简单的方法是什么。
我在想一个函数的行,我可以调用每个子键;
DeleteDuplicates(sql_order);
Merge(sql_select);
不知道如何写这些没有大量的性能击中每个查询。
我总是可以使用foreach()循环,但考虑到我将运行查询的频率,我不希望在每个查询中多次运行循环中遇到巨大的性能。可能有更好的方法? – kvanberendonck 2012-02-20 07:24:30