PHP SOAP stdclass obect数组

时间:2016-10-30 02:38:40

标签: php arrays soap

我正在使用PHP SOAP脚本从Web服务中检索数据。我在下面显示的PHP代码会生成一个stdclass对象,其中包含一个名为Staff的数组。

    $values = $client->GetAllStaff($search_query);

    $xml = $values->SasReqRespGetAllStaff;

    print "<pre>\n";
    print_r($xml);
    print "</pre>";
?>

这会在我的网络浏览器中产生以下结果。

  "stdClass Object
  (
   [Source] => R5 Sim
   [RespMsgTag] => 5
   [RespAck] => OK
   [RespNote] => 
   [TotalItems] => 13
   [Staff] => Array
      (
       [0] => stdClass Object
          (
              [StaffID] => 15
              [Last] => LastName1
              [First] => TESTstaffOut1
              [Middle] => MName1
              [Role] => Level 1
          )
       [1] => stdClass Object
          (
              [StaffID] => 16
              [Last] => LastName2
              [First] => TESTstaffOut2
              [Middle] => MName2
              [Role] => Level 2
          )"

如何从[Staff] =&gt;中写出值?数组到PHP变量,可以在以后使用或用于其他PHP?我如何循环通过Staff [0],[1]?

2 个答案:

答案 0 :(得分:0)

它们已经存在于PHP变量中(包含在stdClass对象中)。但是,如果你想循环遍历它们,你可以这样做:

foreach($xml->Staff as $staff)
{
  // Eg: To get the staff id:
  $staffId = $staff->StaffID;
  var_dump($staffId);
}

答案 1 :(得分:0)

我使用了上面的信息并提出了以下信息,经过测试和工作。

echo " <br> Available Groups <table> <tr><th>Group ID</th><th>First Name</th><th>Middle Name</th><th>Last Name</th><th>Role</th></tr>";
    foreach($xml->Staff as $staff )
    {
        $staffId = $staff->StaffID;
        $lastName = $staff->Last;
        $firstName = $staff->First;
        $middleName = $staff->Middle;
        $role = $staff->Role;

        $html = "<tr>";
        $html .= "<td>".$staffId."</td>";
        $html .= "<td>".$firstName."</td>";
        $html .= "<td>".$middleName."</td>";
        $html .= "<td>".$lastName."</td>";
        $html .= "<td>".$role."</td>";
        $html .= "</tr>";
        echo $html;
    }
    echo "</table>";

我还使用了以下帖子中的信息。 iterating through a stdClass object in PHP