1
votes

Stocker les clés de tableau dans une variable avec la boucle foreach PHP

Lorsque vous enregistrez dans un tableau les prix et les identifiants d'un produit, avec ce code ...

array:10 [â–¼
  3140 => array:1 [â–¼
      "price_pvp" => 6.5
      "price_promotion" => 5.53
  ]
  3141 => array:1 [â–¼
      "price_pvp" => 7.5
      "price_promotion" => 6.37
  ] ... ... ...

Le résultat de $ price_and_ids avec ce code est un objet avec les clés numérotées:

array:10 [â–¼
  0 => array:1 [â–¼
    3140 => array:2 [â–¼
      "price_pvp" => 6.5
      "price_promotion" => 5.53
    ]
  ]
  1 => array:1 [â–¼
    3141 => array:2 [â–¼
      "price_pvp" => 7.5
      "price_promotion" => 6.37
    ]
  ]
  2 ... ... ...

Le résultat que je veux est que les identifiants d'article sont les clés du tableau.

Je veux ceci :

foreach($resource->group->tabs as $tab) {

                foreach($tab->articles as $article) 
                {
                    $prices_and_ids[] = array(
                        $article->article_erp_id => array(
                            'price_pvp'       => $article->price_pvp,
                            'price_promotion' => $article->price_promotion,
                        )
                    ); 
                }
            }


2 commentaires

essayez ceci $ price_and_ids [$ article-> article_erp_id] = array ('price_pvp' => $ article-> price_pvp, 'price_promotion' => $ article-> price_promotion,);


le veux-tu comme réponse


3 Réponses :


0
votes

Au lieu de $ price_and_ids [], vous devriez utiliser $ price_and_ids [$ article-> article_erp_id]

foreach($resource->group->tabs as $tab) {

        foreach($tab->articles as $article) 
        {
            $prices_and_ids[$article->article_erp_id] array(
                    'price_pvp'       => $article->price_pvp,
                    'price_promotion' => $article->price_promotion,
                );

        }
    }


0 commentaires

3
votes

le problème avec votre code est que vous l'ajoutez dans un autre tableau faites ceci

$ price_and_ids [$ article-> article_erp_id]

au lieu de

$ price_and_ids []

foreach($resource->group->tabs as $tab) {
 foreach($tab->articles as $article) 
        {
            $prices_and_ids[$article->article_erp_id] = array(
                $article->article_erp_id => array(
                    'price_pvp'       => $article->price_pvp,
                    'price_promotion' => $article->price_promotion,
                )
            ); 
        }
    }


0 commentaires

0
votes

Modifiez votre corps foreach en suivant le code

$prices_and_ids[$article->article_erp_id] = array(
    'price_pvp'       => $article->price_pvp,
    'price_promotion' => $article->price_promotion,
);


0 commentaires