object в array

vxc

Новичок
object в array

Занимаюсь парсингом XML
Для перевода XML в массив использую класс class AminoAcid(код есть в комментариях - http://www.php.net/manual/en/function.xml-parse-into-struct.php)

в итоге
print_r($db[0]) возвращает
PHP:
AminoAcid Object
(
    [some] => data
    [some2] => data2
    [some3] => data3
)
и обратиться по $db[0][some] не выходит - пишет Fatal error: Cannot use object of type AminoAcid as array in ...

Как можно обратиться к конкретному элементу и можно ли как-то сконвертить этот объект в обычный массив.
Вычитал что для PHP 5 работает $db = (array) $db; но что-то никаких результатов это не принесло:(

-~{}~ 08.03.10 19:59:

Нашел класс
PHP:
function object2array($object)
{
    $return = NULL;
      
    if(is_array($object))
    {
        foreach($object as $key => $value)
            $return[$key] = object2array($value);
    }
    else
    {
        $var = get_object_vars($object);
          
        if($var)
        {
            foreach($var as $key => $value)
                $return[$key] = ($key && !$value) ? NULL : object2array($value);
        }
        else return $object;
    }

    return $return;
}
неужели только таким громоздким способом можно сконвертить?
 

vxc

Новичок
Mols, спасибо. То что нужно)
Только вот, а если в some присутствует знак двоеточия - some:some что делать?
Если обернуть в кавычки - то скрипт ругается((
 

dimagolov

Новичок
Если обернуть в кавычки - то скрипт ругается((
может тебе бросить программирование? если такие проблемы с пониманием синтаксиса и программа для тебя только набор заклинаний.

посмотри хотя-бы, var_dump($db[0]) чтобы понять, что происходит в случае some:some
 

vxc

Новичок
Смотрел вардамп неоднократно

[28] => AminoAcid Object
(
[Date] =>15 Feb 2010 17:55:18 GMT
[some] => some
[category] =>bla-bla-bla
[x:music] => Cypress Hill - Illusions
[x:reply] => 3
)


Что тут не так?????
 

vxc

Новичок
Я же с самого начала написал, что у меня
AminoAcid Object
(
[some] => data
[some2] => data2
[some3:some] => data3
)
и $db[0]['some3:some'] не катит....
 

Fortop

Новичок
PHP:
$list = new stdClass();
$list->{'some3:some'} = 'a';
var_dump($list);
-~{}~ 08.03.10 20:59:

разве это сложно?

-~{}~ 08.03.10 21:01:

Туда же в кучу
PHP:
foreach($db as $key => &$obj) {
    $obj = (array) $obj;
}

var_dump($db);
 

vxc

Новичок
Когда знаешь что нужно обрамлять {' то конечно все посто:)
Спасибо.
 
Сверху