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