0

phpを使用してcsvファイルを作成する場合、1行= 1内部配列のように、必要な入力は2次元配列です。

$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');

この配列を取得して、csv用に1つの配列内の小さな配列に分割する必要があります。各小さな配列には、インデックス0に「999999」があり、その後に$list配列内の次の2つの項目が続く必要があります。したがって、最終的な結果は次のようになります。

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

元のリスト配列には、最大100個の値が含まれる場合があります。これを達成するための最良の方法は何ですか?

4

2 に答える 2

1

これを行う別の方法があります。追加する要素をどこに追加するかについてのコメントを参照してください(2つのリスト項目の後に要素を追加するために、最後に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);
?>
于 2012-09-04T19:02:50.133 に答える
0
$idx = 0;
$newarray = array();
$temparray = array('999999');
foreach($oldarray as $value) {
   $temparray[] = $value;
   if ((++$idx % 2)) == 0) {
       $newarray[] = $temparray;
       $temparray = array('999999');
   }
}
于 2012-09-04T18:44:47.403 に答える