获取未定义的偏移量:0 php数组

时间:2013-09-13 08:19:20

标签: php json codeigniter xmlhttprequest

从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($ model);

        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);

2 个答案:

答案 0 :(得分:2)

你的循环需要数组中的以下索引:$xml_rpc_rows[$i],它将转换为$xml_rpc_rows[0],因此index == 0.但是你的数组只有索引(键):$xml_rpc_rows['A']

循环对按钮数组也不起作用,因为该数组的第一个索引是1.所以你的循环需要$i=1

foreach循环可以为您提供更多信息并使其更清晰。

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

现在您可以看到数组使用的键/索引以及包含的值。

答案 1 :(得分:1)

在创建数组时,您使用字母作为索引,但在循环中,您尝试使用数字索引。而不是你应该使用foreach来遍历这个数组。