我的$query->results()
数组的print_r为我提供了示例:
CI_DB_mysql_result Object
(
[conn_id] => Resource id #28
[result_id] => Resource id #45
[result_array] => Array
(
)
[result_object] => Array
(
[0] => stdClass Object
(
[id] => 3
[is_tool] => 1
)
[1] => stdClass Object
(
[id] => 7
[is_tool] => 0
)
[2] => stdClass Object
(
[id] => 12
[is_tool] => 1
)
[3] => stdClass Object
(
[id] => 13
[is_tool] => 0
)
)
[custom_result_object] => Array
(
)
[current_row] => 0
[num_rows] => 10
[row_data] =>
)
我想通过删除一个或多个stdClass对象并将[num_rows]更新为我剩下的行数来操纵上面的结果,否则就像数据库查询的结果一样离开数组我原来的$query
变量。
这可能吗?我怎么能这样做呢?
非常感谢。
答案 0 :(得分:0)
您可以迭代结果集,确保使用&符号在foreach
中通过引用传递:
foreach($records->result() AS &$record) {
unset($record->x); // Remove a key
$record->foo = 'Bar'; // Add a key
}
请注意: - 这并不适用于所有版本的PHP 5!
您也可以尝试扩展CI_DB_mysql_result
类并返回该实例,只要它与默认实现保持兼容即可。然后,您可以扩充num_rows
方法以包含您的自定义代码。