从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);
答案 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
来遍历这个数组。