PHP - преобразование массива объектов в пригодный для использования объект - PullRequest
1 голос
/ 10 февраля 2011

У меня есть массив, который содержит объекты состояния, эти объекты состояния содержат массив похожих объектов, а также содержат объекты комментариев

Мой вопрос заключается в том, что теперь у меня есть объекты в моем массиве.обратно?Теперь я могу сохранить их в БД.

Спасибо за вашу помощь

Энди

например,

Array
(
    [0] => cStatus Object
        (
            [statusId:cStatus:private] => 123123123
            [message:cStatus:private] => powpowpow
            [updated_time:cStatus:private] => 2011-01-27T15:52:48+0000
            [likes:cStatus:private] => Array
                (
                )

            [comments:cStatus:private] => Comment Object
                (
                    [commentId:Comment:private] => 123123123
                    [created_time:Comment:private] => 2011-01-30T20:18:50+0000
                    [message:Comment:private] => Kazam
                    [name:Comment:private] => Blue man
                    [createdBy:Comment:private] => 124124
                    [likes:Comment:private] => Array
                        (
                        )

                )

        )

    [1] => cStatus Object
        (
            [statusId:cStatus:private] => 5125125
            [message:cStatus:private] => Gawdam fruit and fibre is tasty :D
            [updated_time:cStatus:private] => 2011-01-25T20:21:56+0000
            [likes:cStatus:private] => Array
                (
                    [0] => Like Object
                        (
                            [likeId:Like:private] => 120409086
                            [name:Like:private] => Jt
                        )

                )

            [comments:cStatus:private] => Array
                (
                )

        )

    [2] => cStatus Object
        (
            [statusId:cStatus:private] => 5215215
            [message:cStatus:private] => Dear 2
            [updated_time:cStatus:private] => 2011-01-18T08:28:50+0000
            [likes:cStatus:private] => Array
                (
                    [0] => Like Object
                        (
                            [likeId:Like:private] => 2456
                            [name:Like:private] => Edw2r
                        )

                    [1] => Like Object
                        (
                            [likeId:Like:private] => 2452412
                            [name:Like:private] => aw1
                        )

                    [2] => Like Object
                        (
                            [likeId:Like:private] => 12412411
                            [name:Like:private] => wqw
                        )

                )

            [comments:cStatus:private] => Array
                (
                )

        )
)

1 Ответ

2 голосов
/ 15 февраля 2011

Вы можете использовать foreach и получать доступ к свойствам отдельных объектов, которые будут сохранены.Я предполагаю, что вы используете методы получения и установки, поскольку все ваши свойства являются частными.Использование foreach предоставляет ключевое слово «as» для создания псевдонима для каждого отдельного экземпляра объекта при выполнении цикла между ними.

<?foreach($obj as $status){
  $status_text = $status->getMessage();
  //save this to database using your favored method;
  $comments = $status->getComments();
  //nest the foreach for all the comments to save them as well, if you like
  foreach($comments as $comment){
   //Save $comment here as well
  }
}
?>

Это особенно удобно для сложных вложенных объектов, таких как ваш, поскольку публичные методы и свойствабыть доступным для отдельного итератора для простых действий, таких как сохранение в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...