在PHP中的请求中指定具有相同名称的子项

时间:2011-07-20 18:43:17

标签: php arrays object soap soap-client

我需要建立一个类似于此的请求:

<rooms>
<room>12345</room>
<room>65679</room>
</rooms>

但是,我插入一个房间,如:

$request->therequest->rooms['room'] = 123456;

但是当我再次为第二个做它时,它会覆盖第一个。如何在“房间”下指定2个儿童房,而不覆盖它们?

谢谢!这适用于一些SoapClient的东西。

3 个答案:

答案 0 :(得分:2)

您应该考虑使用SimpleXMLElement。然后你会这样做:

$templateXML = "<rooms></rooms>";
$xmlElement = new SimpleXMLElement($templateXML);
$xmlElement->addChild("room", 12345);
$xmlElement->addChild("room", 65679);

print $xmlElement->asXML();

输出结果为:

<?xml version="1.0"?>
<rooms>
    <room>12345</room>
    <room>65679</room>
</rooms>

详细了解SimpleXMLElement here。这里有关于the addChild method的更多信息。

答案 1 :(得分:1)

您需要创建一个房间数组。 您可以将其添加到数组中,如:

$request->therequest->rooms['room'][] = 123456;

答案 2 :(得分:1)

$request->therequest->rooms['room'][0]怎么样?