php使用数组解析多维stdclass对象

php使用数组解析多维stdclass对象,php,arrays,web-services,parsing,stdclass,Php,Arrays,Web Services,Parsing,Stdclass,我正在使用php访问wsdl Web服务。读取效果很好,但解析结果似乎有点困难:我试图对结果进行var_dump(),以了解结果的外观。这是我用来转储结果的PHP代码: foreach($result as $var => $value) { var_dump($value); echo "<br />"; } 这是一个相当复杂的答案,我不知道如何用循环来解析它。最后,我想得到一个包含数据的表 非常感谢您的帮助:)。所以你可以用foreach循环它们。只需创

我正在使用php访问wsdl Web服务。读取效果很好,但解析结果似乎有点困难:我试图对结果进行var_dump(),以了解结果的外观。这是我用来转储结果的PHP代码:

 foreach($result as $var => $value) {

  var_dump($value);
    echo "<br />";

}
这是一个相当复杂的答案,我不知道如何用循环来解析它。最后,我想得到一个包含数据的表

非常感谢您的帮助:)

。所以你可以用foreach循环它们。只需创建包含foreach循环的递归函数。例如:

function loop($input)
{
    foreach ($input as $value)
    {
        if (is_array($value) || is_object($value))
            loop($value);
        else
        {
            //store data
            echo $value;
        }
    }
}

问题是,他们将表转换为
列->行
,而不是
行->列
,您可以通过创建新表并反转列和行来实现这一点

$table = array();

foreach ($result['xxx']->Columns->Column as $colnr => $coldata) {
    foreach ($coldata->Rows->string as $rownr => $rowdata) {
        $table[$rownr][$coldata->Name] = $rowdata;
    }
}

print_r($table);

顺便说一句,
$result['xxx']
不起作用,应该用正确的键替换
'xxx'

我有类似的问题。我从JSON格式的代码中获取结果。当我使用json_decode时,我通过var_dump方法注意到,在解码过程中,数组中创建了一些对象

您在下面看到的var_转储是针对我的var的

$result.
如果我想从我的var访问“status”数组,我使用了以下方法,效果很好:)

我希望数据包含在查询结果中

array(1) {
  [0]=>
  object(stdClass)#3 (3) {
    ["status"]=>
    string(9) "Connected"
    ["message"]=>
    string(34) "Connected to database successfully"
    ["data"]=>
    array(1) {
      [0]=>
      object(stdClass)#2 (10) {
        ["id"]=>
        string(36) "cc569871-6544-11e3-945d-0e184c35292b"
        ["login_name"]=>
        string(22) "tkamran@premierbpo.com"
        ["login_password"]=>
        string(8) "Lead6291"
        ["notes"]=>
        NULL
        ["created_by"]=>
        string(7) "default"
        ["created_on"]=>
        string(19) "2013-12-15 12:52:46"
        ["last_modified_by"]=>
        string(7) "default"
        ["last_modified_on"]=>
        string(19) "2013-12-15 12:52:46"
        ["is_current"]=>
        string(3) "yes"
        ["is_active"]=>
        string(3) "yes"
      }
    }
  }
}

但是如果我像这样循环,我无法检测我给出的$value是该列的[“Name”]还是['value'],是吗?(对不起,我还是php初学者…)我更喜欢这种方式。这是一个非常好的解决方案,使以后处理数据变得非常容易。非常感谢你!
$result[0]->status
array(1) {
  [0]=>
  object(stdClass)#3 (3) {
    ["status"]=>
    string(9) "Connected"
    ["message"]=>
    string(34) "Connected to database successfully"
    ["data"]=>
    array(1) {
      [0]=>
      object(stdClass)#2 (10) {
        ["id"]=>
        string(36) "cc569871-6544-11e3-945d-0e184c35292b"
        ["login_name"]=>
        string(22) "tkamran@premierbpo.com"
        ["login_password"]=>
        string(8) "Lead6291"
        ["notes"]=>
        NULL
        ["created_by"]=>
        string(7) "default"
        ["created_on"]=>
        string(19) "2013-12-15 12:52:46"
        ["last_modified_by"]=>
        string(7) "default"
        ["last_modified_on"]=>
        string(19) "2013-12-15 12:52:46"
        ["is_current"]=>
        string(3) "yes"
        ["is_active"]=>
        string(3) "yes"
      }
    }
  }
}