【问题标题】:PHP SOAP stdclass object arrayPHP SOAP 标准类对象数组
【发布时间】:2017-03-12 13:20:20
【问题描述】:

我正在使用 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] => 数组中的值写入 PHP 变量,以便以后使用和/或用于其他 PHP?如何循环访问 Staff [0]、[1]?

【问题讨论】:

    标签: php arrays soap


    【解决方案1】:

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

    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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 谢谢,这就是我要找的!这就是我将 Staff stdclass obect 放入 MySql 数据库的方式吗?
      • 基本上,是的。这将允许您查询数据。另一种方式是您可以将其序列化并以这种方式存储在数据库中(不可查询)
      猜你喜欢
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-14
      • 1970-01-01
      相关资源
      最近更新 更多