2013-02-19 57 views
0

簡單的例子:PHP,fputcsv,想寫每個陣列爲一列不連續

$a = array(1,2,3,4); 
$b = array(10,20,30,40); 
$c = array(100,200,300,400); 

如果我執行以下命令:

$fp = fopen('somefile.csv','w'); 
fputcsv($fp,$a); 
fputcsv($fp,$b); 
fputcsv($fp,$c); 
fclose($fp); 

我得到類似如下的文件:

1,2,3,4 
10,20,30,40 
100,200,300,400 

正如我所料。但是我要的是:

1,10,100 
2,20,200 
3,30,300 
4,40,400 

這是可能的,而不只是循環,並從每個陣列寫每個索引?

回答

4

使用循環有什麼問題?這很容易。

$fp = fopen('somefile.csv','w'); 
for ($i = 0 ; $i < 4 ; $i++){ 
    fputcsv($fp, array($a[$i], $b[$i], $c[$i])) ; 
} 
fclose($fp) ; 
+0

我想知道如果說有5個陣列有100,000個元素會有多高效?猜猜我必須測試並找出答案。有什麼想法嗎? – 2013-02-19 20:21:02

+0

@kpurdon升級代碼以獲得更好的性能,因爲您不必在循環中調用函數。 – vikingmaster 2013-02-19 20:24:57

+0

@kpurdon事實上,我發現它非常高效,因爲使用'array_ *'函數通常比循環數組和執行簡單操作要慢。 – vikingmaster 2013-02-19 20:36:11