我希望澄清这段代码的和平:
unset($row['something']);
因为在我的代码中,我使用它从我从查询中获得的结果中删除了一些列。我使用它来获取数组并完成它:
$rows = array();
while($row = $result->fetch_assoc())
我需要列来制作其他组合列。后来当我尝试导出到csv文件时,它仍然显示未设置的列。应该使用unset删除哪个。所以在我使用unset方法删除几列时。
真的希望有人可以帮我这个,因为我不知道如何从我的阵列中删除这些列。
更新
public function getRows()
{
global $global_db_link;
$result = $global_db_link->query($this->getQuery());
$rows = array();
while($row = $result->fetch_assoc())
{
// This is where i use different columns to calculate something
// and make a new column out of it
unset($row['column_header']);
$rows[] = $row;
}
return $rows;
所以这是短版本。
答案 0 :(得分:0)
如上所述,Unset可用于从信息数组中删除信息。但是,while循环中的$row
是从数据库中获取信息。为什么你需要取消设置特定的行?我甚至不确定这是否可能。
最好建立一个排除指定列的第二个数组,以便导出为CSV。
答案 1 :(得分:0)
我的理解是您从数据库中选择一组列,根据所选列计算一些新列,并且您希望将列列表(一些选定的,一些已计算的)导出为CSV。
我建议你这样做:
public function getRows()
{
global $global_db_link;
$result = $global_db_link->query($this->getQuery());
$rows = array();
while($row = $result->fetch_assoc())
{
// This is where i use different columns to calculate something
// and make a new column out of it
//unset($row['column_header']);
// I assume that you add computed elements to row, like:
$row['computed1'] = $row['selected1'] + $row['selected2'];
$rows[] = array($row['computed1'],$row['selected3'],$row['selected4'],$row['computed2']);
}
return $rows;
这意味着您将创建一个数组,其中包含您要导出为CSV的计算/选定列的组合,而不必担心取消设置任何内容。