遍历记录集两次

Looping through a recordset twice

我正在开发 Moodle 2.9.1 插件,我需要在同一页面上循环访问一个小记录集两次。

我正在使用

$rs = $DB->get_recordset_sql($sql, array());

从mysql获取数据。

我需要像 mysql data_seek(0) 这样的函数来再次处理记录集,但我在 moodle API 或论坛中找不到与此相关的任何内容。

只需循环两次 $rs ??

foreach ($rs as $data){
}
foreach ($rs as $data){
} 

或者做一个干净的函数 loop_thorught 并调用它两次?

如果您知道数据不会太大,那么您可以改用 get_records_sql()。这将 return 一个数组,由 SELECT 中的第一个字段索引。然后你可以用这个数组做你想做的事(多次循环、拆分、弹出、移位等)。