Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J’ai une classe qui reçois des infos extrais d’une base de donnée sous la forme suivante.
il sont ensuite utilisées en y accédant comme dans l'exemple simplifié :
foreach ($data as $row) { $row->ID; $row->NAME; }
Les données sont extraient d’une base de donnée ( fetchAll() ), puis passent dans un Zend_Paginator.
J’aimerais aussi utiliser cette classe mais en lui donnant un tableau (un simple array)
Vous savez que les tableaux sont lu de la façon suivante :
foreach ($data as $row) { $row[‘ID’]; $row[‘NAME’]; }
Ces 2 façons sont incompatibles
Je ne sais pas si je peux transformer l’array en un rowset.
Et je ne peux pas faire un $paginator->toArray().
Vous connaissez une solution ?
Dernière modification par maryooman (24-06-2010 16:55:37)
Hors ligne
Salut,
il existe l'interface ArrayAccess qui permet d'accéder aux propriétés d'un objet comme si c'était un tableau. J'ai dernièrement écrit un article sur la façon de l'implémenter que tu trouveras ici.
Hors ligne
oui la chose est directement dans php
get_object_vars qui prend un objet et te retourne une hash table
foreach (get_objects_vars($myObject) as $row) { $row[‘ID’]; $row[‘NAME’]; }
dans le sens inverse un cast suffit supposent que ta classe MyRow dérive de Zend_Db_Table_Row
foreach ($myArray as $row) { $rowObj = (MyRow)$row $rowObj ->ID; $rowObj ->NAME; }
A+JYT
Hors ligne
Encore une fois, merci beaucoup!
On en apprend des choses !!
J'ai choisie d'utiliser get_objects_vars(), c'est plus rapide pour mon cas.
Quand à ton blog newsky il est maintenant dans mes flux rss
Hors ligne
Cherchant de la doc pour get_object_vars et ArrayAccess dans google, au file des recherche je suis tombé sur ArrayObject (présent dans la SPL).
C'est un objet génial qui permet de lire un objet comme un tableau et un tableau comme un objet !
A+
Hors ligne