thinkphp5 - Comment thinkphp fonctionne-t-il s'il y a des tableaux associés dans le tableau, extrait les valeurs et les additionne?
仅有的幸福
仅有的幸福 2017-05-16 13:01:33
0
4
651

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,
    )
仅有的幸福
仅有的幸福

répondre à tous(4)
伊谢尔伦

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']; 
    }
}
刘奇

É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

phpcn_u1582
$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

我想大声告诉你

//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);       
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal