0

xmlrpc クライアントから呼び出されたときにテーブルから返される次の配列結果があり、この応答をクライアント側に送信したいと考えています。

array(17) {
      ["A"]=>
      int(1)
      ["B"]=>
      int(0)
      ["pnl"]=>
      int(1)
      ["C"]=>
      int(1)
      
      ["buttons"]=>
      array(5) {
        [1]=>
        string(9) "ABC"
        [2]=>
        string(5) "DEF"
        [3]=>
        string(5) "G"
        [4]=>
        string(7) "H"
        [5]=>
        string(9) "I"
      }
      ["List"]=>
      string(580) "<th title="S">Ticker</th><th title="Position - Shares Held in Portfolio">Pos</th><th title="Average Cost">Cost</th><th title="Current Market Price">Price</th>"
    }

現在、次のコードを使用してレコードをフェッチしていますが、未定義のオフセットが返されます。フェッチされたすべてのデータを含む var_dump 関数を使用して上記の結果が得られました。適切な行で結果を取得するようにループを変更するにはどうすればよいですか?

var_dump($モデル) ;

        for ($i = 0; $i < count($model); ++$i) {
            $xml_rpc_rows[$i] = array($model[$i], 'struct');
        }
       
    }
   $response = array(
        $xml_rpc_rows,
        'struct');
    return $this->xmlrpc->send_response($response);
4

2 に答える 2

2

ループは配列から次のインデックスを必要とします:$xml_rpc_rows[$i]これは に変換される$xml_rpc_rows[0]ため、インデックス == 0. しかし、配列には次のようなインデックス (キー) しかありません: $xml_rpc_rows['A'].

その配列の最初のインデックスは 1 であるため、ループはボタン配列でも機能しません。したがって、ループには$i=1.

foreach ループを使用すると、より多くの情報が得られ、少しわかりやすくなります。

<?php
foreach ($model as $key => $val) {
  print $key . '<br />';
  print $val;
}

これで、配列が使用するキー/インデックスとそれらに含まれる値を確認できます。

于 2013-09-13T08:33:59.820 に答える
1

配列の作成中に文字をインデックスとして使用しましたが、ループでは数値インデックスを使用しようとしています。その代わりに、foreachこの配列を反復処理するために使用する必要があります。

于 2013-09-13T08:24:56.800 に答える