@astrotrain

Как использовать элемент SimpleXMLElement как ключ ассоциативного массива?

В общем есть такой xml документ:

<Domains>
        <DomainData IsValid="true">
            <DomainName>mozilla.com</DomainName>
            <Values>
                <Data>
                    <Parameter>Cy</Parameter>
                    <Value xsi:type="CyApiData">
                        <Cy>12000</Cy>
                        <Yaca>0</Yaca>
                        <YaBarMirrow>0</YaBarMirrow>
                    </Value>
                </Data>
            </Values>
        </DomainData>


А вот пример из официальной документации, но в самом нижнем цикле немного изменен, чтобы записывать нужные мне данные в ассоциативный массив (домен = тиц).

foreach($sessionData->Domains->DomainData as $domain)
    {
        // Доменное имя
        echo $domain->DomainName."<br/>";
        $str = $domain->DomainName;     
        foreach($domain->Values->Data as $data)
        {
            echo $data->Parameter."<br/>";
            echo $data->Value."<br/>";

            foreach(get_object_vars($data->Value) as $paramKey => $paramValue)
            {
                //echo "{$paramKey} = {$paramValue}"."<br/>";
                if( stristr($paramKey,"cy") )
                {
                    //$out_array["domain"][] = $domain->DomainName;
                    //$out_array["domain"]["cy"][] = $paramValue;
                    $out_array[$str][] = $paramValue;
                }


            }
        }
        echo "<br/>";

Но почему-то все время получаю ошибку и пустой массив на выходе:

Warning: Illegal offset type in C:\xampp\htdocs\w\functions\domain.php on line 1
19


Этот элемент вроде строковый, но видимо это не так на деле, поэтому интерпретатор ругается. В чем может быть дело и как правильно записать данные в массив? Спасибо!
  • Вопрос задан
  • 203 просмотра
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
$domain->DomainName->__toString();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы