Многомерные массивы в php - есть два массива с одинаковым именем?

В основном создается клиент SOAP, и часть требуемого ввода форматируется следующим образом:

<Attributes>
    <Attribute>
         <AttributeType>HomeType</AttributeType>
         <Value>duplex</Value>
    </Attribute>
    <Attribute>
        <AttributeType>Bedrooms</AttributeType>
        <Value>2</Value>
    </Attribute>
    <Attribute>
        <AttributeType>Bathrooms</AttributeType>
        <Value>2</Value>
    </Attribute>
</Attributes>

Это публикуется через массив:

$homeType = array (

'AttributeType' => 'HomeType',
'Value' => $_POST['hometype']
);
$bedrooms = array (
'AttributeType' => 'Bedrooms',
'Value' => $_POST['bedrooms']
);
$bathrooms = array(
'AttributeType' => 'Bathrooms',
'Value' => $_POST['bathrooms']
);
$attributes = array (
'Attribute' => $homeType,
'Attribute' => $bedrooms,
'Attribute' => $bathrooms
);

И, как вы можете себе представить, все, что возвращает Array, — это последний атрибут, поэтому xml выглядит так:

<Attributes>
    <Attribute>
        <AttributeType>Bathrooms</AttributeType>
        <Value>2</Value>
    </Attribute>
</Attributes>

Я не могу придумать никакого практического способа обойти это, так как атрибуты могут насчитываться до 30-50, поэтому я не хочу их численно указывать, тем более что массив вызывается только как:

'Attributes' => $attributes,

Любая помощь будет принята с благодарностью!


person rickyduck    schedule 11.07.2011    source источник


Ответы (1)


Разве вы не должны просто использовать массив? $attributes = массив('Атрибут' => массив($homeType, $спальни, $ванные) );

person Stefan H Singer    schedule 11.07.2011
comment
Если это произойдет, вывод будет только следующим: ‹Attributes› ‹Attribute› ‹AttributeType›HomeType‹/AttributeType› ‹Value›duplex‹/Value› ‹AttributeType›Bedrooms‹/AttributeType› ‹Value›2‹/Value› ‹AttributeType› Ванные комнаты‹/AttributeType› ‹Value›2‹/Value› ‹/Attribute› ‹/Attributes› — означает, что вызов SOAP прервется - person rickyduck; 11.07.2011
comment
Прости, Стефан, беру свои слова назад! По какой-то причине это сработало идеально, сервер SOAP должен автоматически поместить каждый массив в родительский XML. Кроме того, несмотря на ответы на вопросы - сервер SOAP генерирует XML, вызов выполняется через службу клиента SOAP PHP5! Ура еще раз, я бы никогда не подумал об этом. - person rickyduck; 11.07.2011
comment
Не за что :) Не стесняйтесь отметить и этот ответ, ура! - person Stefan H Singer; 11.07.2011
comment
В ожидании глупого срока! Сделаю примерно через две минуты ;) - person rickyduck; 11.07.2011