Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 24-06-2010 16:52:40

maryooman
Membre
Date d'inscription: 15-02-2010
Messages: 106

Transformer un array en un rowset

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é :

Code:

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 :

Code:

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

 

#2 24-06-2010 23:14:25

NewSky
Membre
Date d'inscription: 17-12-2007
Messages: 79

Re: Transformer un array en un rowset

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

 

#3 25-06-2010 09:00:22

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Transformer un array en un rowset

oui la chose est directement dans php
get_object_vars qui prend un objet et te retourne une hash table

Code:

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

Code:

foreach ($myArray as $row)
{
    $rowObj = (MyRow)$row
    $rowObj ->ID;
    $rowObj ->NAME;
}

A+JYT

Hors ligne

 

#4 25-06-2010 10:14:10

maryooman
Membre
Date d'inscription: 15-02-2010
Messages: 106

Re: Transformer un array en un rowset

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 wink

Hors ligne

 

#5 25-06-2010 10:56:10

maryooman
Membre
Date d'inscription: 15-02-2010
Messages: 106

Re: Transformer un array en un rowset

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages