Excel ライターに選択的に出力する必要がある PHP 多次元配列があります。私はこのようなものを持っています:
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に各フィールドの値を必要な場所と方法で選択的に書き込むことができないようです。私はたくさん読んで、多くのことを試しました。答えは、「初期」配列に1つ、2次元配列にもう1つ、2つのforeachループを使用することだと思いますが、何らかの理由で機能させることができません。「extract」も試してみましたが、うまくいきませんでした... 私は「訓練を受けた」PHP プログラマーではありません。Google は私の大学であり (そして私の学部はスタック オーバーフローです)、配列を扱うのにそれほど問題はありませんが...、世界は多次元配列でひっくり返ります...
どんな助けでも大歓迎です。
ありがとう!
-----編集----- OK、「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
、クエリしている 3 つの 4 つのフィールドのそれぞれの最初の数が取得され、エージェントが「吐き出す」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
、クエリが出力するさまざまなものを反復処理するループを作成する必要があります。