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

Langage PHP Discussion :

Associer différent bloque xml selon les valeurs par un foreach [PHP 5.6]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 26
    Points : 18
    Points
    18
    Par défaut Associer différent bloque xml selon les valeurs par un foreach
    Bonjour,

    Je suis actuellement bloquer.
    Je souhaite associer pour chaque bloque //Niv2_Offre de mon xml(ci-dessous) les valeurs présente dans le bloque //Niv1_Operation du fichier xml, les deux bloque sont associés par les valeurs Code_Niv1 présente en //Niv2_Offre et par Code_operation présente en //Niv1_Operation.

    Malheureusement je n'arrive pas à faire l'association et la condition que j'ai mis dans mon code,
    'si (Code_operation == Code_Niv1)', n'est jamais vrai.

    J’espère que je suis clair dans l'explication de mon problème pouvez-vous m'aider svp?


    ci-dessous le code php et xml
    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
    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
    51
    52
    $fichier = 'fichier_global_offer.xml';
    $xml     = simplexml_load_file($fichier);
     
    $planOffer = $xml->xpath('//Niv2_Offre');
    $planOperation = $xml->xpath('//Niv1_Operation');
    $n=0;
    foreach ($planOperation as $operation)
    {
    	$operationName = $operation->{"Nom_operation"};
    	$operationCode = $operation->{"Code_operation"};
    	$catOne = $operation->{"Categorie_Un"};
    	$catTwo = $operation->{"Categorie_Deux"};
     
    	$arrayNiv1[$n] = array('CODE' => $operationCode, 'NAME' => $operationName, 'CAT1' => $catOne, 'CAT2' => $catTwo);
    	$n++;
    }
    $m=0;
    foreach ($planOffer as $offer)
    {
    	$code = $offer->{"Informations"}->{"Code"};
    	$offerName = $offer->{"Informations"}->{"Designation"};
    	$parentCode = $offer->{"Code"}->{"Code_Niv1"};
    	$beginDate = $offer->{"Criteres"}->{"Date_de_debut"};
    	$endDate = $offer->{"Criteres"}->{"Date_de_fin"};
    	$client = $offer->{"Criteres"}->{"Client"};
    	$execution = $offer->{"Criteres"}->{"Execution"};
    	$exclusion = $offer->{"Criteres"}->{"Articles_OUT"};
    	$canalDistrib = $offer->{"Criteres"}->{"canal_Distribution"};
    	if(empty($canalDistrib))
    	{
    		$canalDistrib = "mag";
    	}
     
    	if($beginDate && $endDate)
    	{
    		foreach($arrayNiv1 as $valuePlus)
    		{
    			if($parentCode == $valuePlus['CODE'])
    			{
    				$A=$valuePlus['NAME'];
    				$B=$valuePlus['CAT1'];
    				$C=$valuePlus['CAT2'];
     
    				$desc='cible'.$client.' - opération "'.$valuePlus['NAME'].'" - code'.$code.' '.$offerName.' '.$execution.' // '.$canalDistrib.' Marques exclues : '.$exclusion.' Date de validité : du '.$beginDate.' au '.$endDate;
     
    				$array_offerPlan[$m]=array('CAT1' => $valuePlus['CAT1'], 'CAT2' => $valuePlus['CAT2'], 'INFO' => $desc, 'BEGIN' => $beginDate, 'END' => $endDate);
    			}
    		}
     
    		$m++;
    	}	
    }

    Code xml : 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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    This XML file does not appear to have any style information associated with it. The document tree is shown below.
    <xmlGlobal>
    <Niv0_Campagne>...</Niv0_Campagne>
    <Niv1_Operation>
    <Nom_operation>ALI_OPE1</Nom_operation>
    <Code_operation>2231</Code_operation>
    <Categorie_Deux>Cadeau sans contrainte</Categorie_Deux>
    </Niv1_Operation>
    <Niv2_Offre>...</Niv2_Offre>
    <Niv2_Offre>...</Niv2_Offre>
    <Niv1_Operation>
    <Nom_operation>ALI_OP2</Nom_operation>
    <Code_operation>2234</Code_operation>
    <Categorie_Un>Reccurrente</Categorie_Un>
    <Categorie_Deux>Remise totale panier tous clients</Categorie_Deux>
    </Niv1_Operation>
    <Niv2_Offre>...</Niv2_Offre>
    <Niv0_Campagne>...</Niv0_Campagne>
    <Niv1_Operation>
    <Nom_operation>ALI TEST OFFRE</Nom_operation>
    <Code_operation>2242</Code_operation>
    <Categorie_Un>Mini magasin</Categorie_Un>
    <Categorie_Deux>Anniversaire Gold</Categorie_Deux>
    </Niv1_Operation>
    <Niv2_Offre>
    <Code>
    <Code_Niv0>2241</Code_Niv0>
    <Code_Niv1>2242</Code_Niv1>
    <Code_Niv2>2243</Code_Niv2>
    </Code>
    <Informations>
    <ID>4</ID>
    <Date_de_création>06/07/2017</Date_de_création>
    <Code>2243</Code>
    <Compteur>0</Compteur>
    <Designation>ALI TEST OFFRE</Designation>
    <Benefice_client>TEST valeur champ conditions d'utilisation</Benefice_client>
    <Financement>Sephora</Financement>
    <Objectif_de_CA>50</Objectif_de_CA>
    <Statut>Active - Echue</Statut>
    <Priorité>3</Priorité>
    </Informations>
    <Criteres>
    <Transaction>Quantity_Item >= 2</Transaction>
    <Magasins_concernes>30055; 55;</Magasins_concernes>
    <Execution/>
    <Perimetre>Sélection de magasin</Perimetre>
    <canal_Distribution/>
    </Criteres>
    <Actions>
    <Type_de_remise>Action_Reduce %TotalCash 10</Type_de_remise>
    <Message>Test : Ligne 1 FOOTER; Test : Ligne 2 FOOTER;</Message>
    </Actions>
    </Niv2_Offre>
    <Niv0_Campagne>...</Niv0_Campagne>
    <Niv1_Operation>
    <Nom_operation>ALI_OPE3</Nom_operation>
    <Code_operation>2245</Code_operation>
    <Categorie_Un>Locale</Categorie_Un>
    <Categorie_Deux>Remise carte fidélitée</Categorie_Deux>
    </Niv1_Operation>
    <Niv2_Offre>...</Niv2_Offre>
    <Niv2_Offre>...</Niv2_Offre>
    <Niv1_Operation>
    <Nom_operation>ALI_OP4</Nom_operation>
    <Code_operation>2248</Code_operation>
    <Categorie_Un>Vente Privée</Categorie_Un>
    <Categorie_Deux>Sephora Salariée</Categorie_Deux>
    </Niv1_Operation>
    <Niv2_Offre>...</Niv2_Offre>
    <Niv0_Campagne>...</Niv0_Campagne>
    <Niv1_Operation>
    <Nom_operation>ALI_OP5</Nom_operation>
    <Code_operation>2251</Code_operation>
    <Categorie_Un>Partenaire</Categorie_Un>
    <Categorie_Deux>Prix Barrés</Categorie_Deux>
    </Niv1_Operation>
    <Niv2_Offre>...</Niv2_Offre>
    <Niv2_Offre>...</Niv2_Offre>
    <Niv0_Campagne>...</Niv0_Campagne>
    <Niv1_Operation>
    <Nom_operation>ALI_OPE6</Nom_operation>
    <Code_operation>2256</Code_operation>
    <Categorie_Un>Locale</Categorie_Un>
    <Categorie_Deux>Partenaires ou locales</Categorie_Deux>
    </Niv1_Operation>
    <Niv2_Offre>...</Niv2_Offre>
    <ID>10</ID>
    </xmlGlobal>

  2. #2
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Bonsoir,
    veuillez donner un xml minimal et le résultat attendu parce que perso je n'ai pas bien compris le problème.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    merci pour votre retour:

    j'essaye dans mon code php de faire un foreach pour récupérer chaque partie du xml (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block"><Niv0_Campagne></span><span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block"><Niv1_Operation></span> et 
    <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block"><Niv2_Offre></span>
    ) mais le problème que je rencontre c'est pour associer les différentes partie qui ont une donnée en commune le code. En effet j'aimerai par exemple dans mon tableau $array_offerPlan remplir et associer les données commune comme les éléments présents dans <Niv2_Offre> qui a pour code 2232 avec les éléments de <Niv1_Operation> qui a pour Code_operation 2231.

    actuellement mon code rempli mon tableau dans l'ordre de lecture les éléments <Niv1_Operation> et les éléments <Niv2_Offre> mais sans qu'il n'est de correspondance, en effet l'association se fait selon les données présentes <Niv2_Offre>-><Code>->Code_Niv1 et <Niv2_Offre>-><Code>->Code_Niv2.

    Merci d'avance pour votre aide

    voici une partie minimal du fichier xml:
    Code xml : 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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    <?xml version="1.0" encoding="utf-8"?>
    <xmlGlobal>
      <Niv0_Campagne>
        <Nom_campagne>ALI_CPG1</Nom_campagne>
        <Code_campagne>2230</Code_campagne>
      </Niv0_Campagne>
      <Niv1_Operation>
        <Nom_operation>ALI_OPE1</Nom_operation>
        <Code_operation>2231</Code_operation>
        <Categorie_Deux>Cadeau sans contrainte</Categorie_Deux>
      </Niv1_Operation>
      <Niv2_Offre>
        <Code>
          <Code_Niv0>2230</Code_Niv0>
          <Code_Niv1>2231</Code_Niv1>
          <Code_Niv2>2232</Code_Niv2>
        </Code>
        <Informations>
          <ID>1</ID>
          <Date_de_création>06/07/2017</Date_de_création>
          <Code>2232</Code>
          <Compteur>0</Compteur>
          <Designation>ALI_OFF1</Designation>
          <Benefice_client></Benefice_client>
          <Financement>Fournisseur</Financement>
          <Objectif_de_CA>100</Objectif_de_CA>
          <Statut>Active - Echue</Statut>
          <Priorité>Cumulable - Prix nets Salarié</Priorité>
        </Informations>
        <Criteres>
          <Date_de_debut>2017-07-03</Date_de_debut>
          <Date_de_fin>2017-07-31</Date_de_fin>
          <Magasins_concernes>30813; 30055; </Magasins_concernes>
          <Execution/>
          <Perimetre>Sélection de magasin</Perimetre>
          <canal_Distribution/>
        </Criteres>
        <Actions>
          <Type_de_remise>Action_Reduce %/Article 50</Type_de_remise>
          <Message/>
        </Actions>
      </Niv2_Offre>
      <Niv2_Offre>
        <Code>
          <Code_Niv0>2230</Code_Niv0>
          <Code_Niv1>2231</Code_Niv1>
          <Code_Niv2>2233</Code_Niv2>
        </Code>
        <Informations>
          <ID>2</ID>
          <Date_de_création>06/07/2017</Date_de_création>
          <Code>2233</Code>
          <Compteur>0</Compteur>
          <Designation>ALI_OFF2</Designation>
          <Benefice_client></Benefice_client>
          <Financement>Fournisseur</Financement>
          <Objectif_de_CA>100</Objectif_de_CA>
          <Statut>En cours de paramètrage</Statut>
          <Priorité>Cumulable - Prix nets Salarié</Priorité>
        </Informations>
        <Criteres>
          <Modulo>3 Max 2(greatest)</Modulo>
          <Date_de_debut>2017-07-03</Date_de_debut>
          <Date_de_fin>2017-07-18</Date_de_fin>
          <Magasins_concernes/>
          <Execution>valable plusieurs fois</Execution>
          <Perimetre>All</Perimetre>
          <canal_Distribution/>
        </Criteres>
        <Actions>
          <Type_de_remise>Action_Reduce %/Article 50</Type_de_remise>
          <Message>Test : Ligne 1 CRM; Test : Ligne 2 CRM; </Message>
        </Actions>
      </Niv2_Offre>

  4. #4
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Désolé c'est toujours flou cette affaire pour moi.. Si on pouvait avoir une sorte de représentation finale du tableau voulu, ça aurait été plus intéressant...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    oui désolé !
    J'éspére pouvoir être plus clair
    Alors voici une partie du résultat que j'obtiens avec mon code actuel (ci-dessous):

    Or, par exemple pour [0] je devrais avoir : (les données issue de la partie <Niv1_Operation>, CAT1=>"NULL", CAT2 => "Cadeau sans contrainte" et dans INFO =>"op├®ration "ALI_OPE1"")
    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
     
    array(4) {
      [0]=>
      array(5) {
        ["CAT1"]=>
        object(SimpleXMLElement)#133 (1) {
          [0]=>
          NULL
        }
        ["CAT2"]=>
        object(SimpleXMLElement)#134 (1) {
          [0]=>
          string(22) "Cadeau sans contrainte"
        }
        ["INFO"]=>
        string(121) "cible - op├®ration "ALI_OPE1" - code2232 ALI_OFF1  //  Marques
    exclues :  Date de validit├® : du 2017-07-03 au 2017-07-31"
        ["BEGIN"]=>
        object(SimpleXMLElement)#140 (1) {
          [0]=>
          string(10) "2017-07-03"
        }
        ["END"]=>
        object(SimpleXMLElement)#141 (1) {
          [0]=>
          string(10) "2017-07-31"
        }
      }

    2:Actuel
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    array(4) {
      [0]=>
      array(5) {
        ["CAT1"]=>
        object(SimpleXMLElement)#133 (1) {
          [0]=>
          string(6) "Locale"
        }
        ["CAT2"]=>
        object(SimpleXMLElement)#134 (1) {
          [0]=>
          string(22) "Partenaires ou locales"
        }
        ["INFO"]=>
        string(121) "cible - op├®ration "ALI_OPE6" - code2232 ALI_OFF1  //  Marques
    exclues :  Date de validit├® : du 2017-07-03 au 2017-07-31"
        ["BEGIN"]=>
        object(SimpleXMLElement)#140 (1) {
          [0]=>
          string(10) "2017-07-03"
        }
        ["END"]=>
        object(SimpleXMLElement)#141 (1) {
          [0]=>
          string(10) "2017-07-31"
        }
      }
      [1]=>
      array(5) {
        ["CAT1"]=>
        object(SimpleXMLElement)#133 (1) {
          [0]=>
          string(6) "Locale"
        }
        ["CAT2"]=>
        object(SimpleXMLElement)#134 (1) {
          [0]=>
          string(22) "Partenaires ou locales"
        }
        ["INFO"]=>
        string(143) "cible - op├®ration "ALI_OPE6" - code2233 ALI_OFF2 valable plusi
    eurs fois //  Marques exclues :  Date de validit├® : du 2017-07-03 au 2017-07-18
    "
        ["BEGIN"]=>
        object(SimpleXMLElement)#149 (1) {
          [0]=>
          string(10) "2017-07-03"
        }
        ["END"]=>
        object(SimpleXMLElement)#148 (1) {
          [0]=>
          string(10) "2017-07-18"
        }
      }
      [2]=>
      array(5) {
        ["CAT1"]=>
        object(SimpleXMLElement)#133 (1) {
          [0]=>
          string(6) "Locale"
        }
        ["CAT2"]=>
        object(SimpleXMLElement)#134 (1) {
          [0]=>
          string(22) "Partenaires ou locales"
        }
        ["INFO"]=>
        string(121) "cible - op├®ration "ALI_OPE6" - code2246 ALI_OFF1  //  Marques
    exclues :  Date de validit├® : du 2017-07-03 au 2017-07-24"
        ["BEGIN"]=>
        object(SimpleXMLElement)#138 (1) {
          [0]=>
          string(10) "2017-07-03"
        }
        ["END"]=>
        object(SimpleXMLElement)#142 (1) {
          [0]=>
          string(10) "2017-07-24"
        }
      }
      [3]=>
      array(5) {
        ["CAT1"]=>
        object(SimpleXMLElement)#133 (1) {
          [0]=>
          string(6) "Locale"
        }
        ["CAT2"]=>
        object(SimpleXMLElement)#134 (1) {
          [0]=>
          string(22) "Partenaires ou locales"
        }
        ["INFO"]=>
        string(143) "cible - op├®ration "ALI_OPE6" - code2247 ALI_OFF2 valable plusi
    eurs fois //  Marques exclues :  Date de validit├® : du 2017-07-03 au 2017-07-18
    "
        ["BEGIN"]=>
        object(SimpleXMLElement)#137 (1) {
          [0]=>
          string(10) "2017-07-03"
        }
        ["END"]=>
        object(SimpleXMLElement)#139 (1) {
          [0]=>
          string(10) "2017-07-18"
        }
      }
    }

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Est-ce plus clair?

  7. #7
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    On prend par exemple le Niv1_Operation avec le code 2231 et on vérifie le code_Niv1 de Niv2_offre s'il y'a une correspondance , on fait une association ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    oui c'est tout à fait ça je l'ai associe dans un tableau

  9. #9
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Un "Code_operation" peut se retrouver dans plusieurs "Niv2_Offre- Code_Niv1" , dans ce cas comment se passe l'association ? parce que dans l'exemple avec le tableau voulu, c'est le premier qui est associé..

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    je veux avoir le même comportement dans le cas de l'entrée [1] qui possède la même valeur Niv2_Offre- Code_Niv1 que l'entrée [0] alors je veux avoir ceci: ils auront les même valeurs niv 1 mais des valeurs niv2 différente (

    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
     
    array(4) {
      [0]=>
      array(5) {
        ["CAT1"]=>
        object(SimpleXMLElement)#133 (1) {
          [0]=>
          NULL
        }
        ["CAT2"]=>
        object(SimpleXMLElement)#134 (1) {
          [0]=>
          string(22) "Cadeau sans contrainte"
        }
        ["INFO"]=>
        string(121) "cible - op├®ration "ALI_OPE1" - code2233 ALI_OFF2//  Marques
    exclues :  Date de validit├® : du 2017-07-03 au 2017-07-18"
        ["BEGIN"]=>
        object(SimpleXMLElement)#140 (1) {
          [0]=>
          string(10) "2017-07-03"
        }
        ["END"]=>
        object(SimpleXMLElement)#141 (1) {
          [0]=>
          string(10) "2017-07-18"
        }
      }

  11. #11
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Alors un truc comme ça

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    $planOffer = $xml->xpath('//Niv2_Offre');
    $planOperation = $xml->xpath('//Niv1_Operation');
     
    $operations = [];
     
    foreach ($planOperation as $operation) {
        $operationName = $operation->{"Nom_operation"};
        $operationCode = (string)$operation->{"Code_operation"};
        $catOne = $operation->{"Categorie_Un"};
        $catTwo = $operation->{"Categorie_Deux"};
     
        $result = ['CODE' => $operationCode, 'NAME' => $operationName, 'CAT1' => $catOne, 'CAT2' => $catTwo];
        $result = array_map('strval', $result); //Conversion en chaîne
        $operations[$operationCode] = $result;
    }
     
     
    $results = [];
     
    foreach ($planOffer as $offer) {
        $parentCode = (string)$offer->{"Code"}->{"Code_Niv1"};
        $begin = (string)$offer->{"Criteres"}->{"Date_de_debut"};
        $end = (string)$offer->{"Criteres"}->{"Date_de_fin"};
     
        if (isset($operations[$parentCode])) {
            $results[] = array_merge($operations[$parentCode], ['BEGIN' => $begin, 'END' => $end]);
        }
    }

  12. #12
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Oui c'est exactement ce que je voulais. Merci beaucoup pour ton aide !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/11/2016, 04h12
  2. Réponses: 4
    Dernier message: 23/03/2007, 09h49
  3. [C#-XML] Récupérer les valeurs des noeuds enfants
    Par cyllix dans le forum Windows Forms
    Réponses: 1
    Dernier message: 23/06/2006, 11h54
  4. Problème avec les valeurs par défaut
    Par Steph Ace dans le forum Requêtes
    Réponses: 3
    Dernier message: 12/12/2005, 09h55
  5. Trier un std::map selon les valeurs plutot que les clés
    Par dj.motte dans le forum SL & STL
    Réponses: 2
    Dernier message: 13/11/2004, 21h54

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