我有一个 PHP 多维数组,我需要选择性地打印到 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"
}
}
在 excel 中,我需要它看起来有点像这样:
User | talk_time | acw | idle
10227 | 8 | 0 | 6
10236 | 10 | 3 | 0
我想我可以将“写作”管理得更好,但我似乎无法让 php 有选择地为每个字段写入我想要的位置和方式的值。我读了很多书并尝试了很多东西,我认为答案是使用两个 foreach 循环,一个用于“初始”数组,另一个用于第二维数组,但由于某种原因,我无法使其工作。我也尝试过使用“提取”,但效果不太好……我不是一个“训练有素”的 PHP 程序员。谷歌一直是我的大学(stackoverflow 是我的教员),虽然我在处理数组方面没有太多麻烦……但世界因多维数组而颠倒了……
任何帮助将不胜感激。
谢谢!
-----编辑----- 好的,我不需要“导出到 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_SEC
,我将获得我正在查询的三个四个字段中的第一个数字,大约是代理将被“吐出”的 24 次......
最后的编辑和答案
我实际上可以使用单个 foreach 语句使其工作:
foreach ($agents as $row){
//VAR_DUMP($row);
$USER=$row['user'];
$TALK=$row['talk_time'];
$ACW=$row['acw'];
$IDLE=$row['idle'];
现在我所要做的就是$USER
在$TALK
我已经用PEAR::EXCEL_WRITER
. 当然,您需要创建一个循环来迭代$USERS
查询将输出的不同内容。