我们使用Wordpress函数$ wpdb-> get_results(SQL)进行了令人讨厌的数据库调用。
在PHP中收到结果后,我们需要对结果进行一些更改。
所以任何人都可以告诉我如何:
1)从get_results()返回的对象中删除特定的行。
2)更改返回对象中特定行的特定列的值。
即。如果返回的对象是$ nastyData,我们需要:
1)从$ nastyData
中删除特定行2)更改$ nastyData中特定行中特定列的值,例如$ nastyData->特定行的名称。
有什么想法吗?
我已经考虑过make_getults()将数据作为数组返回,但是这会在代码中的其他地方产生问题(代码期望接收对象)。
谢谢, MADS
答案 0 :(得分:2)
首先,您的“Nasty数据库调用”应该优化为不那么讨厌。更具体地说,只查询您想要的结果,这样您就不必删除后面的内容。这是最好的解决方案。
如果您坚持尝试修改对象,这是一种解决方法。根据{{3}},当返回对象时,它们以两种方式之一返回:
OBJECT - 结果将作为数字索引的行对象数组输出。
OBJECT_K - 结果将作为行对象的关联数组输出,使用第一列的值作为键(将丢弃重复项)。
因此,知道结果是一个对象数组,我们可以使用foreach
结构访问每个单独的实例:
$results = $wpdb->get_results( $nastySQL );
foreach($results as $index => $result)
{
// Change name column to FirstName using copy and delete
$tmp = $result->name;
unset($result->name);
$result->FirstName = $tmp;
// Remove specific row
if( $result->name == "Tom")
{
unset($results[$index]);
}
}