2012-09-04 56 views
0

創建一個csv文件與PHP,期望的輸入是一個二維數組,因此1行= 1的內部數組。創建一個二維數組從簡單的數組爲csv使用

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'), 
    array('123', '456', '789'), 
    array('"aaa"', '"bbb"') 
); 

$fp = fopen('file.csv', 'w'); 

foreach ($list as $fields) { 
    fputcsv($fp, $fields); 
} 

fclose($fp); 

//output result in file.csv 

aaa,bbb,ccc,dddd 
123,456,789 
"""aaa""","""bbb""" 

所以我有以下的數組:

$list = array('item1','item2','item3','item4','item5','item6'); 

我需要藉此陣列和1個陣列用於CSV內它分解成更小的陣列。每個小陣列都需要在索引0處具有'999999',然後在$list陣列中接下來的兩個項目。所以最終結果會是這樣的:

$newList = array(array(999999, "item1" , "item2"), 
       array(999999, "item3" , "item4"), 
       array(999999, "item5" , "item6") 
      ); 

原始列表數組有時候最多可以包含100個值。達到此目的的最佳方法是什麼?

回答

1

下面是做這件事的不同方式,請參見注釋到哪裏你把你的內容,以預先考慮(你可以在末尾添加第二陣列到合併2列表後添加的元素項目太)

看到這裏的工作!例如:http://codepad.org/hucpT5Yo

<?php 
$list = array('item1','item2','item3','item4','item5','item6'); 
$list_chunks = array_chunk($list,2); 

$list_chunks2 = array_map(
        create_function(
         '$x', 
         'return array_merge(array(
          /* This array is prepended to the second, 
           add as many elements as you like */ 
          999999, 
          "another element to add", 
          483274832 
          ), 
         $x);'), 
        $list_chunks); 

print_r($list_chunks2); 
?> 
+0

感謝您的幫助! – thindery

0
$idx = 0; 
$newarray = array(); 
$temparray = array('999999'); 
foreach($oldarray as $value) { 
    $temparray[] = $value; 
    if ((++$idx % 2)) == 0) { 
     $newarray[] = $temparray; 
     $temparray = array('999999'); 
    } 
}