用php创建一个csv文件,预期输入是一个二维数组,所以1行= 1个内部数组。
$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
数组中的下两个项目。所以最终的结果是这样的:
$newList = array( array(999999, "item1" , "item2"),
array(999999, "item3" , "item4"),
array(999999, "item5" , "item6")
);
原始列表数组有时最多可包含100个值。实现这一目标的最佳方法是什么?
答案 0 :(得分: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);
?>
答案 1 :(得分:0)
$idx = 0;
$newarray = array();
$temparray = array('999999');
foreach($oldarray as $value) {
$temparray[] = $value;
if ((++$idx % 2)) == 0) {
$newarray[] = $temparray;
$temparray = array('999999');
}
}