如何修改File_CSV_DataSource的某些功能的输出?

时间:2010-11-01 19:08:56

标签: php function pear

以下函数来自名为File_CSV_DataSource的PEAR脚本,是一个CSV解析器。

CSV文件是这样的:
姓名,年龄,技能
约翰,13岁,知道魔术 8岁的田中制作寿司 jose,5,舞蹈salsa

此功能的当前输出如下:

array (0 => array ('name' => 'john','age' => '13','skill' => 'knows magic',),1 =>array('name' => 'tanaka','age' => '8','skill' => 'makes sushi',),2 =>array ('name' => 'jose','age' => '5','skill' => 'dances salsa',),)

我想要实现的是让函数输出如下:

array (array ('john','13','knows magic'), array('tanaka','8','makes sushi'), array ( 'jose','5','dances salsa'),)

所以没有 0 => 且没有列标题=> ,只有单元格的值

有没有办法让我修改下面的功能,使其输出如上例所示?

public function connect($columns = array())
{
    if (!$this->isSymmetric()) {
        return array();
    }
    if (!is_array($columns)) {
        return array();
    }
    if ($columns === array()) {
        $columns = $this->headers;
    }

    $ret_arr = array();

    foreach ($this->rows as $record) {
        $item_array = array();
        foreach ($record as $column => $value) {
            $header = $this->headers[$column];
            if (in_array($header, $columns)) {
                $item_array[$header] = $value;
            }
        }

        // do not append empty results
        if ($item_array !== array()) {
            array_push($ret_arr, $item_array);
        }
    }

    return $ret_arr;
}

提前致谢

1 个答案:

答案 0 :(得分:0)

只需使用内置的filegetcsv即可。它会为你做到这一点。