php为foreach优化代码

时间:2011-06-23 12:39:41

标签: php arrays foreach

我正在开发类似于简单且特定于目的的cms。

我正在使用一个db类,它从查询中输出一个数组,但是这个数组的结构因mysql_num_rows而异。

如果只有一个结果,则输出一个简单数组,否则输出一个嵌套数组。

所以,我必须检查数组的结构,以决定是否使用foreach进行循环,或者只打印结果。

使用简单的mysql_fetch_assoc

我们可以使用while()然后行数没有问题。但是我们必须检查它。

直到现在一切正常。

问题是代码将针对这两个条件重复进行。稍微改变数组名称。

数组名称是$ res,如果一个结果是$res['anything here'],否则,因为我们必须使用foreach($res as $row),所以数组将是$row['anything here']

因此代码看起来很丑陋而且很大。请在这里拿一个lool:http://mohamedkadri.com/code.html并告诉我如何使它变得更简单和更小。

2 个答案:

答案 0 :(得分:6)

解决方案很简单:

更改数据库图层,以便强制它返回行列表,即使只有一行也是如此。这是唯一合适的解决方案。

答案 1 :(得分:3)

这不是一个好方法。我建议更改您的数据库类,以便根据查询是返回一行还是多行来调用其他方法。例如。在Zend Framework数据库类中,有fetchRowfetchAll。这将使您更容易处理您获得的数据。

另一种选择可能是即使只有一行也总是返回一个嵌套数组。这样,处理数据的代码将始终相同。