3 votes

PHP additionne les valeurs dans les foreach séparés

Bonjour, je suis nouveau en php et j'ai rencontré un problème lorsque j'ai besoin de résumer un tableau dans un foreach.

J'avais un tableau comme ça :

  $arrays = [
                [
                      'orderid' => "1",
                      'price' => "100"
                      'rate' => "1"
                ],
                [
                      'orderid' => "2",
                      'price' => "200"
                      'rate' => "5"
                ],

       ];

Ce à quoi je suis confronté lorsque j'utilise foreach, l'élément prix * taux s'additionneront de manière continue mais pas séparément.

     $bonus = array();
     foreach($arrays as $data){
           $bonus = $data['originalPrice'] * $data['rate'];
       }

J'ai également essayé d'utiliser array_map() mais je ne peux pas non plus obtenir ma réponse ;

Ce dont j'ai besoin à propos de :

$array = [
[
   'total' => 100;
],
[
   'total' => 1000;
]

]

Une idée pour vous aider ?

MISE À JOUR : TOUTES LES RÉPONSES SONT CORRIGÉES, les données de l'API me donnent de mauvaises informations.

0 votes

Vous pouvez utiliser la fonction array_push() qui insère un ou plusieurs éléments à la fin d'un tableau.

0 votes

Il suffit d'utiliser $bonus[] = au lieu de $bonus = .

1voto

Rakesh Jakhar Points 5802
 foreach($arrays as $data){
       $bonus[]['total'] = $data['price'] * $data['rate'];
   }
  print_r($bonus);

0 votes

Toujours le même, il continuera à ajouter

0voto

Antony D'Andrea Points 968

Foreach est bien, mais vous devez ajouter au tableau de bonus plutôt que de le remplacer par le résultat :

$bonus = array();
 foreach($arrays as $data){
       $bonus[] = array('total' => $data['originalPrice'] * $data['rate']);
   }

Il s'agit d'ajouter des tableaux à la bonus le tableau.

0voto

Ankit Agarwal Points 23887

Vous utilisez price donc utilisez cette propriété et vous devez pousser la valeur dans le tableau de résultat. Ainsi, vous devez le faire :

<?php
$arrays=array(
 array(
    'orderid' => "1",
    'price' => "100",
    'rate' => "1"
  ),
  array(
    'orderid' => "2",
    'price' => "200",
    'rate' => "5"
  )
);
$bonus = array();
foreach($arrays as $data){
 array_push($bonus,$data['price'] * $data['rate']);
}
print_r($bonus);
?>

Vous pouvez tester ce code à l'adresse suivante http://www.writephponline.com/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X