Ich habe ein mehrdimensionales PHP-Array, das ich brauche selektiv Drucken in Excel Writer.Ich habe so etwas:
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"
}
}
Und in Excel muss es ungefähr so aussehen:
User | talk_time | acw | idle
10227 | 8 | 0 | 6
10236 | 10 | 3 | 0
Ich denke, dass ich das „Schreiben“ hervorragend hinbekomme, aber ich schaffe es scheinbar nicht, die PHP dazu zu bringen, den Wert für jedes Feld selektiv dort zu schreiben, wo und wie ich ihn haben möchte.Ich habe viel gelesen und viele Dinge ausprobiert. Ich denke, die Antwort wäre, zwei foreach-Schleifen zu verwenden, eine für das „anfängliche“ Array und eine andere für das Array der zweiten Dimension, aber aus irgendeinem Grund kann ich es nicht zum Laufen bringen.Ich habe auch versucht, „extrahieren“ zu verwenden, aber es hat nicht so gut geklappt ...Ich bin kein „ausgebildeter“ PHP-Programmierer.Google war meine Universität (und Stackoverflow meine Fakultät) und obwohl ich keine großen Probleme mit der Arbeit mit Arrays habe, steht die Welt mit mehrdimensionalen Arrays auf dem Kopf ...
Jede Hilfe wäre sehr dankbar.
Danke!
----- bearbeiten ----- OK, ich brauche die Funktion "Exportieren in Excel" nicht. Ich kann das verarbeiten, wenn ich den Wert des Arrays einer Variablen zuweisen kann.
Ich mache gerade Folgendes:
foreach ($agents as $row){
$USER=$row["user"];
echo "$USER\n";
foreach($row as $col){
$TALK_SEC=$col["talk_sec"];
}
}
Aber alles, was ich bekomme, ist
1023610236102361023610236102361023610236102361023610236102361023610236102361023610236102361023610236102361023610236
Das ist mein erster Agent (ich beschränke meine Abfrage auf 1 -LIMIT 1-) mal 24 Mal.Wenn ich ein Echo hinzufüge $TALK_SEC
, würde ich die erste Zahl jedes der drei vier Felder, die ich abfrage, ungefähr mal so oft erhalten, wie der Agent 24 Mal „ausgespuckt“ wird ...
ENDGÜLTIGE BEARBEITUNG UND ANTWORT
Ich konnte es mit einer einzigen foreach-Anweisung zum Laufen bringen:
foreach ($agents as $row){
//VAR_DUMP($row);
$USER=$row['user'];
$TALK=$row['talk_time'];
$ACW=$row['acw'];
$IDLE=$row['idle'];
Jetzt muss ich nur noch die Variablennamen ausdrucken ($USER
, $TALK
, usw.) in der Tabelle, mit der ich bereits erstellt habe PEAR::EXCEL_WRITER
.Natürlich müssen Sie eine Schleife erstellen, um die verschiedenen zu durchlaufen $USERS
dass Ihre Abfrage ausgegeben wird.