【发布时间】:2015-09-11 13:56:34
【问题描述】:
我查看了this question,但似乎无法让代码用于我的目的。
我有一个结构类似的数组 ($array),其中包含来自数据库的数据:
array(369) {
array(3) {
["id"] => string(5) "12345",
["title"] => string(11) "Hello World",
["description"] => string(n) "..."
}
array(3) {
["id"] => string(5) "12346",
["title"] => string(13) "Goodbye World",
["description"] => string(n) "..."
}
...
}
但是,这个数组数据将创建一个 CSV,我还需要插入空列。因此我需要数组最终看起来像这样:
array(369) {
array(5) {
["id"] => string(5) "12345",
["title"] => string(11) "Hello World",
["title2"] => string(0) "",
["description"] => string(n) "...",
["description2"] => string(0) ""
}
array(5) {
["id"] => string(5) "12346",
["title"] => string(13) "Goodbye World",
["title2"] => string(0) "",
["description"] => string(n) "...",
["description2"] => string(0) ""
}
...
}
我尝试使用array_splice() 在相关点输入空白值:
array_splice($array, 2, 0, "");
array_splice($array, 4, 0, "");
但这最终只会破坏数组,后来使用fputcsv() 的代码甚至无法将其识别为 数组。如何输入这些空白值?
foreach ($array as $value) {
fputcsv($fp, $value);
}
请注意:数组key 标记为什么无关紧要。可以是上面建议的,空白、数字、零……重要的是我需要一个空白value。
【问题讨论】:
-
您是否尝试过对每个数组项进行简单循环,以这种方式附加空白元素?或者,您可以将这些列包含在 MySQL 选择查询中,即使它们不存在于原始表中。类似
SELECT *, "" as description1 FROM table_name WHERE condition_stuff -
一个巧妙的技巧,通过查询拉取不存在的列!
标签: php arrays array-splice