質問

必要な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

「書き込み」を管理してExcelを管理できると思いますが、PHPに各フィールドの価値をどこでどのように希望するかを選択的に書き込むことはできないようです。私はたくさん読んで、多くのことを試しました。答えは、「初期」アレイに1つ、2番目のディメンションアレイに1つを使用することだと思いますが、何らかの理由で機能させることはできません。また、「抽出」を使用してみましたが、あまりうまくいきませんでした...私は「訓練された」PHPプログラマではありません。 Googleは私の大学(そして私の教員のStackoverflow)であり、私はアレイで作業するのにそれほど問題はありませんが...

どんな助けも大歓迎です。

ありがとう!

-----編集----- OK、「Export to 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つのフィールドのそれぞれの最初の数を取得します。

最終編集と回答

私は実際に単一の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 クエリが出力されること。

役に立ちましたか?

解決

このスクリプトは、ファイル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>

他のヒント

これは、すでにここに投稿されている答えに追加されたものです...それは、Arrayの見出しをExcelファイルに含める方法を示しています。これがあなたのためにそれが何であるかであれば、私のものではなく、答えられたように他の人の投稿をマークしてください。

出力:

user    talk_time   acw      idle
10227   8           0        6
10236   10          3        0

コード:

<?php
$array = 
      array (
        10227 => 
        array (
          'user' => '10227',
          'talk_time' => '8',
          'acw' => '0',
          'idle' => '6',
        ),
        10236 => 
        array (
          'user' => '10236',
          'talk_time' => '10',
          'acw' => '3',
          'idle' => '0',
        ),
      );  
$file="demo.xls";
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$file");

$index = array_slice($array,0,1);  
$index = array_keys($index[0]);   

?>
<table> 
    <tr>
      <?php foreach($index as $heading): ?>
        <th><?php echo $heading ?></th>
      <?php endforeach; ?>
    </tr> 
    <?php foreach($array as $row): ?>
    <tr>
       <?php foreach($row as $col):?>
          <td><?php echo $col ?></td>
       <?php endforeach; ?>
   </tr>
   <?php endforeach; ?>
</table>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top