2016-09-26 2 views
0

저는 PHP에 비교적 익숙하지 않아이 PHP 프로젝트에서 작업하고 있습니다. 나는 다음과 같이 SimpleXMLElement 오브젝트의 배열을 통해 반복 해요 :이 배열은 XML을 반환하는 SOAP 호출에서 왔다는 것을SimpleXMLElement 키/속성 이름 바꾸기

SimpleXMLElement 
{ 
RunID : "321", 
Description: "Something Here" 
} 

참고.

내가 원하는 것은 RunID 및 Description 속성의 이름을 다른 것으로 바꾸고 각 요소를 새 배열에 추가하는 것입니다. 도움을 주시면 감사하겠습니다.

이름을 바꿀 수없는 경우 다른 개체 유형 또는 다른 것으로 변환 할 수 있습니까? C#에서 익명 형식으로 할 수있는 것처럼. PHP를 사용하고 있습니다. 5.6

+0

이 파일은 simpleXMLElement 객체의 var_dump/print_r입니까? 그 것처럼 보이지 않습니다. 내가 틀렸다면 나를 바로 잡아라. – Andreas

+0

simplexml_load_string을 사용하여 XML을로드하고 SimpleXMLElement로 바꿨습니다. 그런 다음 위에서 언급 한 속성을 가진 SimpleXMLElement의 배열이있는 SimpleXMLElement를가집니다. 아니 그것 var_dump, 그냥 SimpleXMLElement의 표현. – Jesus

+0

여기에서 대답을 확인하십시오. ** simplexml_load_string (...) ** 결과를 일반 php 배열로 변환하는 방법을 보여줍니다. http://stackoverflow.com/questions/6167279/converting-a-simplexml-object -to-an-array # 6167346 –

답변

0

결국 알아 냈습니다. 내가해야 할 일은 다음과 같습니다. 나는 그것이 누군가를 돕기를 바랍니다.

$myArray = array(); 
foreach($xml as $element) 
{ 
$row["NewPropertyName"] = (string)$element->RunID; 
$row["SecondPropertyName"] = (string)$element->Description; 
$myArray[] = $row; 
} 
+0

루프를 중심으로 매번 새로운'$ row' 배열을 만들 수 있도록'$ row [ "NewPropertyName"]'위에'$ row = array();'를 추가해야합니다 . 나중에 코드가 복잡 해지면이 코드를 추가하는 것을 잊어 버리면 버그가 발생할 수 있습니다. – IMSoP