【发布时间】:2016-10-06 19:19:01
【问题描述】:
我收到了这个极其复杂的对象数组作为 SOAP 响应。我需要使用循环打印出“string_operator_collection”。它是类似于 ["equal_wild"] 但名称不同的运算符的集合。嵌套太深了,我似乎无法使用普通方法访问。请问有什么想法吗?
object(stdClass)#2 (1) {
["get_search_frame_details_response"]
=> object(stdClass)#3 (2) {
["response_context"]=> object(stdClass)#4 (3) {
["session_token"]
=> string(28) "b0ac045931183d1ead6b9f6da061"
["response_status"]=> string(2) "OK"
["response_message"]=> string(0) "" }
["search_frame_details_response_data"]
=> object(stdClass)#5 (2) {
["search_field_collection"]=> object(stdClass)#6 (1) {
["search_field"]=> array(4) {
[0]=> object(stdClass)#7 (3) {
["field_id"]
=> string(82)
"OsCashAllocationCashAllocationPk"
["field_name"]=> string(15) "Customer Number"
["field_operator"]
=> object(stdClass)#8 (1) {
["string_operator_collection"]
=> object(stdClass)#9 (16) {
["equal_wild"]=> string(2) "=*"
到目前为止,我最大的努力是:
get_search_frame_details_response->
search_frame_details_response_data->
search_field_collection->search_field;
print_r(array_values($search_frame_op1));
【问题讨论】:
-
当然你可以使用
normal methods!!!!你只需要花一些时间来解决它 -
我个人觉得
print_r()的输出更容易理解,试试吧,如果仍然无法解决,请发布 -
这里发布的缩进很疯狂。这使得视觉解析变得非常困难。如果您在浏览器中使用
var_dump()将其转储,请查看页面源并将其完全复制在那里。print_r()会少一点噪音,也更容易阅读。 -
抱歉,我必须对其进行格式化以符合 Stack Overflow 规则。 @RiggsFolly 我试过 print_r ,它更清晰。几个小时以来,我已经尝试了很多不同的组合。
-
就像我说的,用这个缩进真的很难分辨,但它看起来像
$var->get_search_frame_details_response->search_frame_details_response_data->search_field_collection->search_field[0]->field_operator->string_operator_collection->equal_wild逐步构建它,print_r()每一步都确保你正确地缩小它。
标签: php arrays object soap stdclass