我正在建立一个客户门户网站。我必须在返回对象的Web服务器上调用SOAP函数。在那个对象中有更多的对象。
它们就像第二层物体。
在第二层对象中有一个包含数据的数组,必须在屏幕上的表格中显示。
在我目前的代码中,我似乎无法找到一种正确循环回声的方法。
这是SOAP调用返回的XML:
<object>
<value>string</value>
<value>string</value>
<value>string</value>
<object>
<value>string</value>
<value>string</value>
<value>string</value>
<object>
<value>string</value>
<value>string</value>
<value>string</value>
</object>
</object>
</object>
这是我的代码:
// soapcall returns $response
$response = (array)$stdClass;
$_UserData = $response;
$UserData = (array)$_UserData;
echo '<table id="table">
<tr>
<th>Data</th>
<th>Value</th>
</tr>';
foreach ($UserData as $key => $data){
if (is_object($data)) {
$array = (array)$data;
foreach ($array as $key => $data) {
if (is_object($data)) {
}
else {
echo '<tr><td>' . $key . '</td><td>' . $data . '</td></tr>';
}
}
}
else {
echo '<tr><td>' . $key . '</td><td>' . $data . '</td></tr>';
}
}
echo '</table>
</br>
<form action="logout.php">
<button>Log out</button>
</form>';
有没有办法简化这个循环?
答案 0 :(得分:1)
您可以用相同的方式回显对象数据:
echo '<tr><td>' . $key . '</td><td>' . $data . '</td></tr>';
foreach
语句适用于数组和对象。
您也可以尝试:
echo '<tr><td>' . $key . '</td><td>' . $key->$data . '</td></tr>';