在表中使用包含数组的对象回显数组时需要帮助

时间:2017-03-06 09:10:23

标签: php arrays object soap

我正在建立一个客户门户网站。我必须在返回对象的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>';

有没有办法简化这个循环?

1 个答案:

答案 0 :(得分:1)

您可以用相同的方式回显对象数据:

echo '<tr><td>' . $key . '</td><td>' . $data . '</td></tr>';

foreach语句适用于数组和对象。

您也可以尝试:

echo '<tr><td>' . $key . '</td><td>' . $key->$data . '</td></tr>';