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


Getting Undefined offset: 0 php array

当从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>"
    }

当前使用以下代码获取记录,但它返回未定义的偏移量.i 使用 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);

您的循环需要数组中的以下索引: $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;
}

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

在创建数组时,您使用字母作为索引,但在循环中,您尝试使用数字索引。相反,您应该使用 foreach 来迭代此数组。