recherche

Maison  >  Questions et réponses  >  le corps du texte

thinkphp5 - Comment thinkphp fonctionne-t-il s'il y a des tableaux associés dans le tableau, extrait les valeurs et les additionne?

J'ai un tableau d'achat dans un centre commercial. Il y a des commandes dans le tableau d'achat. Certaines commandes contiennent les mêmes produits que d'autres commandes. Le champ de montant à l'intérieur correspond à la quantité achetée du produit dans la commande. si cette commande est la même que la quantité achetée du produit dans la commande. Si l'ID d'un certain produit est le même, la quantité dans le champ du montant sera superposée. Que dois-je faire ?

tableau(
    [0]=>
        'pid'=>7,
        'montant'=>1,
    [1]=>
        'pid'=>7,
        'montant'=>2,
    [2]=>
        'pid'=>8,
        'montant'=>1,
)

Par exemple, dans ce tableau, il y a deux valeurs pid qui sont identiques. J'ajouterai les valeurs combinées pour former ce tableau

tableau(
    [0]=>
        'pid'=>7,
        'montant'=>3,
    [1]=>
        'pid'=>8,
        'montant'=>1,
    )
仅有的幸福仅有的幸福2758 Il y a quelques jours636

répondre à tous(4)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:03:33

    Utilisez pid comme clé du nouveau tableau

    $returnarr = array();
    foreach($data as $val) {
        if(isset($returnarr[$val['pid']])) {
            $returnarr[$val['pid']]['amount'] += $val['amount']; 
        } else {
            $returnarr[$val['pid']]['pid'] = $val['pid'];
            $returnarr[$val['pid']]['amount'] = $val['amount']; 
        }
    }

    répondre
    0
  • 怪我咯

    怪我咯2017-05-16 13:03:33

    Écrivez une boucle, jugez s'il y a les mêmes en fonction du pid, fusionnez-les et enfin générez un nouveau tableau OK

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:03:33

    $allok = array();
                foreach ($all as $key1 => &$value1){
                    foreach ($value1 as $key2 => $value2){
                        $allok[$value2['pid']] = $value2;
                        $allok[$value2['pid']] = $allok[$value2['pid']]['amount'] + $value2['amount'];
                        /*$queryproductshop = Model('Product')->queryidshop($value2['pid']);
                        $queryshopclass = Model('ProductClassify')->SaleConfigShopClass($queryproductshop['cid']);
                        $queryproductshop['class'] = $queryshopclass['title'];
                        $allshop[] = $queryproductshop;*/
                    }
                }
                dump($allok);

    Je l'ai résolu moi-même, c'est trop compliqué d'y penser

    répondre
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:03:33

    //Le code est le suivant, j'espère qu'il vous sera utile.
    $orderInfo = tableau(

    [0]=>
        'pid'=>7,
        'amount'=>1,
    [1]=>
        'pid'=>7,
        'amount'=>2,
    [2]=>
        'pid'=>8,
        'amount'=>1,

    );
    foreach ($orderInfo as $k=>$v)

              {
                  $bKey=$v['pid'];
                  if(!array_key_exists($bKey, $orderArr)) 
                  {
                    $orderArr[$bKey] = [];
                    $sumData[$bKey] = 0;
                    }
                  $orderArr[$bKey]=$v;
                  $sumData[$bKey]+=$orderArr[$bKey]['amount']; 
                  $orderArr[$bKey]['amount']=$sumData[$bKey];
              }   
        var_dump($orderArr);       

    répondre
    0
  • Annulerrépondre