Php 有选择地打印多维数组
我有一个PHP多维数组,需要有选择地打印到excel writer。我有这样的想法:Php 有选择地打印多维数组,php,arrays,excel,multidimensional-array,writer,Php,Arrays,Excel,Multidimensional Array,Writer,我有一个PHP多维数组,需要有选择地打印到excel writer。我有这样的想法: array(2) { [10227]=> array(9) { ["user"]=> string(5) "10227" ["talk_time"]=> string(1) "8" ["acw"]=> string(1) "0" ["idle"]=> string(1) "6" } [10236]=&g
array(2) {
[10227]=>
array(9) {
["user"]=>
string(5) "10227"
["talk_time"]=>
string(1) "8"
["acw"]=>
string(1) "0"
["idle"]=>
string(1) "6"
}
[10236]=>
array(9) {
["user"]=>
string(5) "10236"
["talk_time"]=>
string(2) "10"
["acw"]=>
string(1) "3"
["idle"]=>
string(1) "0"
}
}
User | talk_time | acw | idle
10227 | 8 | 0 | 6
10236 | 10 | 3 | 0
在excel中,我需要它看起来像这样:
array(2) {
[10227]=>
array(9) {
["user"]=>
string(5) "10227"
["talk_time"]=>
string(1) "8"
["acw"]=>
string(1) "0"
["idle"]=>
string(1) "6"
}
[10236]=>
array(9) {
["user"]=>
string(5) "10236"
["talk_time"]=>
string(2) "10"
["acw"]=>
string(1) "3"
["idle"]=>
string(1) "0"
}
}
User | talk_time | acw | idle
10227 | 8 | 0 | 6
10236 | 10 | 3 | 0
我想我可以管理“写入”excel,但我似乎无法让php有选择地为每个字段写入我想要的值的位置和方式。我读过很多书,也尝试过很多东西,我认为答案应该是使用两个foreach循环,一个用于“初始”数组,另一个用于第二维度数组,但由于某些原因,我无法使其工作。我也尝试过使用“extract”,但效果不太好。。。我不是一个受过“训练”的PHP程序员。谷歌是我的大学(也是我的教职员工),尽管我在处理数组方面没有太多困难,但多维数组让世界变得天翻地覆
任何帮助都将不胜感激
谢谢
-----编辑-----
好的,我不需要“导出到Excel”功能,只要我可以将数组的值赋给变量,我就可以处理这个问题
我目前正在这样做:
foreach ($agents as $row){
$USER=$row["user"];
echo "$USER\n";
foreach($row as $col){
$TALK_SEC=$col["talk_sec"];
}
}
但我得到的只是
1023610236102361023610236102361023610236102361023610236102361023610236102361023610236102361023610236102361023610236
这是我的第一个代理(我将查询限制为1-LIMIT 1-)24次。如果我在$TALK\u SEC
中添加一个echo,我将得到我要查询的三个四个字段中每个字段的第一个数字,即代理将“吐出”24次的次数
最终编辑和回答
实际上,我可以使用一个foreach语句使其工作:
foreach ($agents as $row){
//VAR_DUMP($row);
$USER=$row['user'];
$TALK=$row['talk_time'];
$ACW=$row['acw'];
$IDLE=$row['idle'];
现在我要做的就是在我已经用
PEAR::EXCEL\u WRITER
创建的电子表格中打印变量名($USER
,$TALK
,等等)。当然,您需要创建一个循环来迭代查询将输出的不同$USERS
。此脚本可以生成excel文件。但在您的情况下,您需要格式化数组以放置:
User | talk_time | acw | idle
10227 | 8 | 0 | 6
10236 | 10 | 3 | 0
剧本:
<?php
$file="demo.xls";
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$file");
$array = array(
array(10, 15, 20),
array(10, 15, 20),
array(10, 15, 20)
);
?>
<table>
<?php foreach($array as $row): ?>
<tr>
<?php foreach($row as $col):?>
<td><?php echo $col ?></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>
这只是对已经发布在这里的答案的补充。。。它只是展示了如何在Excel文件中包含数组的标题。将他人的帖子标记为已回答,而不是我的帖子,如果这对你有帮助的话 输出:
user talk_time acw idle
10227 8 0 6
10236 10 3 0
代码:
等一下,我知道你想要。。您需要使用此数组生成表html,并在标题上添加一些参数。请发布您尝试过的PHP代码。抱歉。。我忘了“我现在测试,它可以工作了。不适合你吗?嗨,伙计们,谢谢你们的超快速响应…!答案几乎在那里,但不完全在那里。我用这个电子表格/Excel/Writer.php(Pear的电子表格编写器)在Excel上写字段。我需要做的是打印$array[]中每个元素的特定值.我使用类似$sheet2->write(2,3,$VALUE-TO-PRINT,$format)的东西;如何在上面的$VALUE-TO-PRINT字段中打印每个值(例如talk_时间)?