Convertir tableau multidimensionnel en XML

Merci de lire la ligne en gras ci-dessous avant de vous commenter que cela peut être un doublon. Cela n'a rien à voir avec SimpleXML.

Permettez-moi de commencer par vous montrer comment le XML doit être aménagée. S'il vous plaît ignorer les espaces de noms:

 <hot:SearchHotels>
     <hot:request>
        <hot1:Destination>?</hot1:Destination>
        <hot1:HotelCityName>?</hot1:HotelCityName>
        <hot1:HotelLocationName>?</hot1:HotelLocationName>
        <hot1:HotelName>?</hot1:HotelName>
        <hot1:CheckIn>?</hot1:CheckIn>
        <hot1:CheckOut>?</hot1:CheckOut>
        <hot1:RoomsInformation>
           <!--Zero or more repetitions:-->
           <hot1:RoomInfo>
              <hot1:AdultNum>?</hot1:AdultNum>
              <hot1:ChildNum>?</hot1:ChildNum>
              <!--Optional:-->
              <hot1:ChildAges>
                 <!--Zero or more repetitions:-->
                 <hot1:ChildAge age="?"/>
              </hot1:ChildAges>
           </hot1:RoomInfo>
        </hot1:RoomsInformation>
        <hot1:MaxPrice>?</hot1:MaxPrice>
        <hot1:StarLevel>?</hot1:StarLevel>
        <hot1:AvailableOnly>?</hot1:AvailableOnly>
        <hot1:PropertyType>?</hot1:PropertyType>
        <hot1:ExactDestination>?</hot1:ExactDestination>
     </hot:request>
  </hot:SearchHotels>

Avis en vertu de l'hot1:RoomsInformation il est RoomInfo. Je suis censé être en mesure d'envoyer plusieurs RoomInfo nœuds. Mais je suis en utilisant une classe PHP pour convertir un tableau à cet objet d'être soumis par l'intermédiaire du SAVON.

Voici mon tableau avant, il est converti en objet:

$param = array(
            "Destination" => $destcode,
            "HotelCityName" => $city,
            "HotelLocationName" => "",
            "HotelName" => "",
            "CheckIn" => date("Y-m-d", strtotime($checkin)),
            "CheckOut" => date("Y-m-d", strtotime($checkout)),
            "RoomsInformation" => array (
                "RoomInfo" => array(
                        "AdultNum" => 2,
                        "ChildNum" => 1,
                        "ChildAges" => array(
                            "ChildAge" => array(
                                "age"=>11
                            )
                        )
                    ),
                "RoomInfo" => array(
                        "AdultNum" => 1,
                        "ChildNum" => 0,
                        "ChildAges" => array(
                            "ChildAge" => array(
                                "age"=>0
                            )
                        )
                    )
            ),
            "MaxPrice" => 0,
            "StarLevel" => 0,
            "AvailableOnly" => "false",
            "PropertyType" => "NotSet",
            "ExactDestination" => "false"
        );

$param = arrayToObject($param) ;
$obj = new stdClass(); 
$obj->request=$param;
$result = $test->SearchHotels($obj) ;

Le problème est que, après la conversion d'un Objet, il est à seulement 1 RoomInfo et son la dernière. Ma pensée est que parce que les RoomsInformation tableau a 2 identiques noms de CLÉ. Alors, comment puis-je faire ce travail?

Pour votre information, voici le SAVON de classe I de l'utilisation et de la arrayToObject fonction:

http://pastebin.com/SBUN0FAF

double possible de Comment convertir le tableau de SimpleXML
Si vous utilisez du SAVON, puis le php SoapClient peut gérer le tableau
Vous ne pouvez pas, pas avec ce tableau. N'importe comment beaucoup de RoomsInformation entrées que vous avez, si ils ont la même clé, ils sont en effet l'un.
Un autre portential liés à la question est: Comment mettre à jour SimpleXMLElement à l'aide du tableau
Merci pour les doublons. Cependant j'ai déjà regardé et ils n'ont pas à voir avec ce que je suis en train de faire. Je ne suis pas en train d'utiliser SimpleXML. Je suis en train de convertir un objet pour une utilisation avec du SAVON

OriginalL'auteur swg1cor14 | 2013-07-02