2016-09-26 135 views
0

我是相对较新的PHP,我正在这个PHP项目中工作。我正在循环访问一组如下所示的SimpleXMLElement对象:重命名SimpleXMLElement键/属性

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

请注意,此数组来自返回XML的SOAP调用。

我想要做的就是将属性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对数组#6167346 –

回答

0

所以我终于想通了。我所要做的就是以下几点。我希望它能帮助别人。

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

您应该在$ row [“NewPropertyName”]之上添加'$ row = array();',以便每次在循环中创建一个新的'$ row'数组。如果您的代码稍后变得更加复杂,那么如果您忘记添加此代码,则可能会遇到错误。 – IMSoP