有人可以澄清未设置($ row ['something'])?

时间:2014-04-08 11:49:43

标签: php unset

我希望澄清这段代码的和平:

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;

所以这是短版本。

2 个答案:

答案 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的计算/选定列的组合,而不必担心取消设置任何内容。