Php 有选择地打印多维数组

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

我有一个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]=>
  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_时间)?