Eu tenho um array multidimensional PHP que preciso seletivamente imprimir no Excel Writer.Eu tenho algo assim:
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"
}
}
E no Excel eu preciso que fique assim:
User | talk_time | acw | idle
10227 | 8 | 0 | 6
10236 | 10 | 3 | 0
Acho que consigo gerenciar a 'escrita' para o Excel, mas não consigo fazer com que o php escreva seletivamente o valor para cada campo onde e como eu quiser.Eu li muito e tentei muitas coisas, acho que a resposta seria usar dois loops foreach, um para o array 'inicial' e outro para o array de segunda dimensão, mas por algum motivo não consigo fazer funcionar.Eu também tentei usar 'extrair', mas não deu muito certo ...Não sou um programador PHP 'treinado'.O Google tem sido minha universidade (e o stackoverflow meu corpo docente) e embora eu não tenha muita dificuldade em trabalhar com arrays..., o mundo vira de cabeça para baixo com arrays multidimensionais...
Qualquer ajuda seria muito apreciada.
Obrigado!
----- EDIT ----- OK, não preciso do recurso 'Exportar para Excel', posso lidar com isso quando posso atribuir o valor da matriz a uma variável.
Atualmente estou fazendo isso:
foreach ($agents as $row){
$USER=$row["user"];
echo "$USER\n";
foreach($row as $col){
$TALK_SEC=$col["talk_sec"];
}
}
Mas tudo que estou conseguindo é
1023610236102361023610236102361023610236102361023610236102361023610236102361023610236102361023610236102361023610236
que é meu primeiro agente (estou limitando minha consulta a 1 -LIMIT 1-) vezes 24 vezes.Se eu adicionar um eco a $TALK_SEC
, eu obteria o primeiro número de cada um dos três quatro campos que estou consultando sobre as 24 vezes em que o agente será 'cuspido'....
EDIÇÃO FINAL E RESPOSTA
Consegui fazê-lo funcionar usando, na verdade, uma única instrução foreach:
foreach ($agents as $row){
//VAR_DUMP($row);
$USER=$row['user'];
$TALK=$row['talk_time'];
$ACW=$row['acw'];
$IDLE=$row['idle'];
Agora tudo que preciso fazer é imprimir os nomes das variáveis ($USER
, $TALK
, etc...) na planilha que já criei com PEAR::EXCEL_WRITER
.É claro que você precisa criar um loop para iterar os diferentes $USERS
que sua consulta será gerada.