2010-11-01 60 views
0

以下函数来自名为File_CSV_DataSource的PEAR脚本,并且是一个CSV分析器。如何修改File_CSV_DataSource某些函数的输出?

CSV文件是这样的:
姓名,年龄,技能
约翰,13,知道魔术
田中,8,做寿司
何塞,5,舞蹈莎莎

这样做的电流输出功能是这样的:

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; 
} 

在此先感谢

回答

0

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

+0

事情是,File_CSV_DataSource包有很容易使用csv操作,但它不修改文件本身,它只是修改输出。我的意图是使用此包对csv文件进行一些修改(删除列,添加列),使用上面的函数接收所需的输出,然后使用fputcsv将输出写入到csv文件(这需要表单中的数组我在上面的问题中指出)。我没有从头开始编写脚本的经验,所以最简单的方法是修改当前的函数以完成我所需要的功能。 – 2010-11-01 19:33:10