IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MkFramework Discussion :

Difficulté à générer un tableau associatif à partir d'un tableau d'objets


Sujet :

MkFramework

  1. #1
    Nouveau membre du Club Avatar de MKuser53
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2016
    Messages : 34
    Points : 27
    Points
    27
    Par défaut Difficulté à générer un tableau associatif à partir d'un tableau d'objets
    De retour puisque bloqué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    		foreach( $tListeAncre as $oListeAncre ) {
    			// Récupération du lien index-*.html
    				$oListeAncre->liensAppli = "liens" . $oListeAncre->ancretab;
    
    				foreach( $tListeCss as $oListeCss ) {
    					// Récupération du lien index-*.html
    						preg_match('`[^\/]+$`', $oListeCss->url, $matches);
    						$oListeCss->urlFile = $matches[0];
                                           // Tentative de reconstruire un tableau clé-valeur
    						if ($oListeAncre->ancretab==$oListeCss->ancretab) {
    						$oListeAncre->liensUrl = array($oListeCss->ancretab => $oListeCss->urlFile);
    
    					}
    				}
    		}
    Je souhaiterais récupérer le retour de $oListeAncre->ancretab; ("liens" . $oListeAncre->ancretab; ) comme nom de tableau et le remplacer par lienUrl, itéré (pas réussi à faire !!!) et du coup recréer un tableau clé-valeur.
    Idéalement comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
        [0] => row_detailonglet Object
            (
                [sClassModel:protected] => model_detailonglet
                [_bChooseUpdate:abstract_row:private] => 1
                [_tProperty:protected] => Array
                    (
                        [onglet_id] => 1
                        [ancretab] => testprodcons
                        [liensAppli] => lienstestprodcons
                        [lienstestprodcons] => Array
                            (
                                [testprodcons] => index-test-cons.html
                                [testprodcons] => index-test2-cons.html
                            )
    
                    )
    
                [_tPropertyToUpdate:protected] => Array
                    (
                        [liensAppli] => liensAppli
                        [liensUrl] => liensUrl
                    )
    
            )
    		
        [1] => row_detailonglet Object
            (
                [sClassModel:protected] => model_detailonglet
                [_bChooseUpdate:abstract_row:private] => 1
                [_tProperty:protected] => Array
                    (
                        [onglet_id] => 2
                        [ancretab] => testprodvalid
                        [liensAppli] => lienstestprodvalid
                        [lienstestprodvalid] => Array
                            (
                                [testprodvalid] => index-test-valid.html
                            )
    
                    )
    
                [_tPropertyToUpdate:protected] => Array
                    (
                        [liensAppli] => liensAppli
                        [liensUrl] => liensUrl
                    )
    
            )
    
    )

    J'ai tenté avec du
    $arrayobj = new ArrayObject(array());
    et du append mais c'est pire cela recrée des tableaux dans des tableaux.

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    et comme ceci ?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    		foreach( $tListeAncre as $oListeAncre ) {
    			// Récupération du lien index-*.html
    				$oListeAncre->liensAppli = "liens" . $oListeAncre->ancretab;
     
    				foreach( $tListeCss as $oListeCss ) {
    					// Récupération du lien index-*.html
    						preg_match('`[^\/]+$`', $oListeCss->url, $matches);
    						$oListeCss->urlFile = $matches[0];
                                           // Tentative de reconstruire un tableau clé-valeur
    						if ($oListeAncre->ancretab==$oListeCss->ancretab) {
    						$oListeAncre->liensUrl [  $oListeCss->ancretab  ]= $oListeCss->urlFile;
     
    					}
    				}
    		}
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Nouveau membre du Club Avatar de MKuser53
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2016
    Messages : 34
    Points : 27
    Points
    27
    Par défaut
    Message d'erreur suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Indirect modification of overloaded property row_detailonglet::$liensUrl has no effect
    #0 C:\wamp\www\framework\data\genere\ApplicationTM2E\module\css\main.php(35): exception_error_handler(8, 'Indirect modifi...', 'C:\wamp\www\fra...', 35, Array)
    #1 C:\wamp\www\framework\lib\framework\class_root.php(263): module_css->_style()
    #2 C:\wamp\www\framework\data\genere\ApplicationTM2E\public\index.php(47): _root->run()
    #3 {main}

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Pour ce message, créer sur la classe row_maTable une propriete publique "liensUrl"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    row_detailonglet{
     public $liensUrl;
     
     public function...
    }
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Nouveau membre du Club Avatar de MKuser53
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2016
    Messages : 34
    Points : 27
    Points
    27
    Par défaut
    Il n'y a plus d'erreur mais le résultat n'est pas bon. il réécrase les données comme précédemment.
    Du coup j'ai révisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $arrayname[indexname] = $value;
    Par contre je comprends pourquoi l'erreur on sort de la visibilité protected, on est un cran au-dessus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     [0] => row_detailonglet Object
            (
                [liensUrl] => Array
                    (
                        [testprodcons] => index-test.html
                    )
                [sClassModel:protected] => model_detailonglet
                [_bChooseUpdate:abstract_row:private] => 1
                [_tProperty:protected] => Array
                    (
                        [onglet_id] => 1
                        [ancretab] => testprodcons
                        [liensAppli] => lienstestprodcons
    
    ...

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Ouii, les champ "_tProperty" ont une utilisation particulière: elles representes les champs en base de données, utilisés notamment dans le cas d'un save pour construire les "vrais" requetes sQL insert/update

    on ne peut donc pas y mettre de tableaux

    vous pouvez toujours créer votre propre classe, mais vous n'aurez pas la possibilité de faire de save() sur ces objets
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Nouveau membre du Club Avatar de MKuser53
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2016
    Messages : 34
    Points : 27
    Points
    27
    Par défaut
    Pour info si je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $oListeAncre->liensUrl[] = $oListeCss->urlFile;
    J'ai bien toutes les urls mais plus la clé

  8. #8
    Nouveau membre du Club Avatar de MKuser53
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2016
    Messages : 34
    Points : 27
    Points
    27
    Par défaut
    Du coup ça va peut-être le faire, c'est limite un raccourci , je vais essayé de faire comme ça pour mon tableau et le traité à la volé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $oListeAncre->liensUrl[$oListeCss->diagclass] = $oListeCss->urlFile;
    _tProperty : si c'est Protected et bien c'est bien protégé alors

  9. #9
    Nouveau membre du Club Avatar de MKuser53
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2016
    Messages : 34
    Points : 27
    Points
    27
    Par défaut
    Impeccable

    Le module CSS Check est fonctionnel. C'est trop beau on dirait du Mylène Farmer

    Je m'attaque aux contraintes.

    THX

  10. #10
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Cool

    Bon courage pour la suite
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/03/2011, 22h54
  2. Réponses: 4
    Dernier message: 19/05/2010, 12h06
  3. [PHP 5.3] Création d'un tableau associatif à partir de d'autres tableaux
    Par sim911 dans le forum Langage
    Réponses: 2
    Dernier message: 28/11/2009, 22h50
  4. Générer un fichier texte à partir d'un tableau Excel
    Par findev dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/07/2008, 21h50
  5. [SQL] Tableau associatif à partir d'une requête
    Par hugo69 dans le forum WinDev
    Réponses: 1
    Dernier message: 24/03/2007, 19h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo