2014-10-22 7 views
0

그래서 SOAP 쿼리에서 얻은 결과 배열을 구문 분석하려고합니다. 그러나 PHP는 나를 슬픔을주고있는 것 같습니다 (나는 더 큰 슬픔을 느낍니다). 쿼리에서 검색 한 모든 사용자 개체를 반향시키고 싶습니다. 쿼리PHP - SOAP Array stdClass

결과 : 결과에 대한

object(stdClass)#3 (1) { ["row"]=> array(4) { 
[0]=> object(stdClass)#4 (2) { ["pkid"]=> string(36) "0c69d6a4-a4a7-0a68-ac47-e3b9279fb25e" ["userid"]=> string(7) "Kitchen" } 
[1]=> object(stdClass)#5 (2) { ["pkid"]=> string(36) "60c858b6-71fd-4c6b-0bc7-18c56a07127e" ["userid"]=> string(7) "Control" } 
[2]=> object(stdClass)#6 (2) { ["pkid"]=> string(36) "b59301fc-a197-6d50-b217-7d8967332601" ["userid"]=> string(5) "House" } 
[3]=> object(stdClass)#7 (2) { ["pkid"]=> string(36) "dcf8b18d-cf95-4ffd-85d2-a6f9b45f5fc9" ["userid"]=> string(47) "Token_User_4806a7a1-f23d-4647-b46c-f62ad66452a0" } } } 

코드 : 그러나

foreach ($response as $row){ 
     var_dump($row->row); 
} 

:

이제
$response = $client->executeSQLQuery(array("sql"=>"select pkid,userid from enduser")); 
    //  var_dump($response); 
    foreach ($response as $row){ 
     var_dump($row); 
} 

나는 다음과 같이 코드를 변경하여 배열에 하나 깊이를 얻을 수 있습니다 이것은 userid 요소에 액세스하는 데는 작동하지 않습니다.

foreach ($response as $row){ 
     var_dump($row->row->userid); 
} 

PHP 대신 반환 PHP Notice: Trying to get property of non-object

어떤 도움이 많이 감사합니다, 감사합니다.

그냥 빨리 업데이트 : 소스 쿼리 : $row 반환

$response = $client->executeSQLQuery(array("sql"=>"select pkid,userid from enduser")); 
    //  var_dump($response); 
    foreach ($response as $row){ 
     var_dump($row); 
//echo("USER: ".$row->userid)."<br>"; 
} 

var_dump : $response 반환

object(stdClass)#3 (1) { ["row"]=> array(4) { [0]=> object(stdClass)#4 (2) { ["pkid"]=> string(36) "0c69d6a4-a4a7-0a68-ac47-e3b9279fb25e" ["userid"]=> string(7) "Kitchen" } [1]=> object(stdClass)#5 (2) { ["pkid"]=> string(36) "60c858b6-71fd-4c6b-0bc7-18c56a07127e" ["userid"]=> string(7) "Control" } [2]=> object(stdClass)#6 (2) { ["pkid"]=> string(36) "b59301fc-a197-6d50-b217-7d8967332601" ["userid"]=> string(5) "House" } [3]=> object(stdClass)#7 (2) { ["pkid"]=> string(36) "dcf8b18d-cf95-4ffd-85d2-a6f9b45f5fc9" ["userid"]=> string(47) "Token_User_4806a7a1-f23d-4647-b46c-f62ad66452a0" } } } 

var_dump :

object(stdClass)#2 (1) { ["return"]=> object(stdClass)#3 (1) { ["row"]=> array(4) { [0]=> object(stdClass)#4 (2) { ["pkid"]=> string(36) "0c69d6a4-a4a7-0a68-ac47-e3b9279fb25e" ["userid"]=> string(7) "Kitchen" } [1]=> object(stdClass)#5 (2) { ["pkid"]=> string(36) "60c858b6-71fd-4c6b-0bc7-18c56a07127e" ["userid"]=> string(7) "Control" } [2]=> object(stdClass)#6 (2) { ["pkid"]=> string(36) "b59301fc-a197-6d50-b217-7d8967332601" ["userid"]=> string(5) "House" } [3]=> object(stdClass)#7 (2) { ["pkid"]=> string(36) "dcf8b18d-cf95-4ffd-85d2-a6f9b45f5fc9" ["userid"]=> string(47) "Token_User_4806a7a1-f23d-4647-b46c-f62ad66452a0" } } } } 
+0

귀하의 바깥 쪽'위해서 var_dump ($ 행이)''row'라는 배열 속성을 포함하는 객체는 다음과 같은

최종 코드 보인다. 각 요소는'pkid'와'userid' 속성을 가진 객체입니다. 그래서'$ row-> row [0] -> userid'와 같이 첫 번째를 얻습니다. 또는'foreach ($ row-> row from $ user)' –

+0

'foreach ($ response-> row $ row)'제안을 시도 할 때 PHP가 돌아 오는 경우 경고 : foreach()에 잘못된 인수가 제공되었습니다. 만약 당신이'$ row-> row [0] -> userid'를 수행했다면 배열에있는 첫 번째 항목을 반환합니다. 그러나 나는 그것을 배열의 각 항목에 대해 루핑을 유지하고 그들을 모두 반환 싶어요. – rsaturns

+0

상단에 게시 된 객체는'var_dump ($ response)'입니까? 브라우저 페이지 소스에서 복사 된'var_dump ($ response)'의 결과를 게시하도록 편집하십시오. 모든 들여 쓰기와 줄 바꿈은 그대로 남습니다. –

답변

1

나는,이 바보 야 같은 문제가있다. 나는 다른 지위에 있었다. 기본적으로 return->row 개체에 액세스해야하며 배열의 pkid 또는 userid 속성에 액세스 할 수 있습니다.

$response = $client->executeSQLQuery(array("sql"=>"select pkid,userid from enduser")); 
//  var_dump($response); 
foreach ($response->return->row as $row){ 
//  var_dump($row->userid); 
echo("USER: ".$row->userid)."<br>"; 
}