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