更有效的格式化数组的方法

时间:2013-09-03 05:24:53

标签: php arrays cakephp

我有一大堆结果作为csv导出的cakePHP模型的数组。我一直在使用循环格式化,如下所示。随着记录数量的增加,这变得太慢并且给出了超时错误。有没有更好的方法来使用cakephp hash或php数组函数?

foreach($people as $person){    
      array_push($results, array(                               
               'SchoolName'=>   $person['School']['name'],
               'SchoolRef'  =>  $person['School']['ref'],
               'firstName' =>  $person['Person']['firstname'],
               'LastName'  =>   $person['Person']['lastname'],
               'Year1'  =>  $person['Person']['year_1'],
               'StudentID'  =>  $person['Person']['studentid'],
               'Email'     =>   $person['Person']['email']
             ));                                                  
    }           

1 个答案:

答案 0 :(得分:1)

如果您只是输出到CSV,为什么不尝试直接从MySQL(或您正在使用的数据库)输出。

EG。 http://ariejan.net/2008/11/27/export-csv-directly-from-mysql/

或者,如果数据没有改变,您可以预先确定现有输出。因此,如果您上次输出CSV时有10,000名学生,则可以保存该CSV并添加新记录。如果它们确实发生了变化,您可以为每条记录添加所有字段的哈希值。

此外,如果数据不必精确到达分钟,您可以每天预测(或任何适合您的间隔)。

然而,如果没有明确指出你所处的位置(就记录大小和超时而言),并且不清楚你想去哪里,很难做出具体的推荐。