0
votes

Vérification unique de la matrice multidimensionnelle avec d'autres valeurs d'index PHP

Ceci est mon tableau, je veux vérifier une valeur d'index pour rester une autre valeur d'index et si la valeur de produit_id est la même somme de sommet_qty. Je suis coincé dans cette situation.Je besoin d'aide. Merci à l'avance. XXX PRE>

Je souhaite une sortie comme celle-ci P>

product_id = 1
total_qty = 500

product_id = 2
total_qty = 400

product_id = 6
total_qty = 700

product_id = 4
total_qty = 300

product_id = 5
total_qty = 200


3 commentaires

Pouvez-vous s'il vous plaît nous montrer vos efforts?


Les données proviennent-elles de DB? Si oui ... cela devrait être fait à l'aide d'une requête (mySQL)


Vous pouvez voir ici 6 Non de l'index Il y a même iProduct_ID est 1 et la valeur est 300. Donc je veux la somme et quand le produit_id est identique, donc je veux que ce produit_id = 1 total_qty = 500


5 Réponses :


1
votes

Vous pouvez le faire avec simple for-boucle xxx

maintenant res contient (la touche est le Product_id et la valeur est le total_qty ): xxx


1 commentaires

Merci beaucoup et tu m'as sauvé. Ça marche vraiment bien pour moi et merci encore une fois @David Winder



0
votes

Essayez ceci pour plus de détails xxx

sortie xxx


1 commentaires

Bonne journée



0
votes

Avec le code ci-dessous, vous pouvez obtenir le résultat que vous attendez.

<?php

$array = Array
(   Array
        (
            "iProduct_id" => "1",
            "fTotal_qty" => "200",
        ),
        Array
        (
            "iProduct_id" => "2",
            "fTotal_qty" => "400",
        ),
        Array
        (
            "iProduct_id" => "6",
            "fTotal_qty" => "500",
        ),
        Array
        (
            "iProduct_id" => "4",
            "fTotal_qty" => "300",
        ),
        Array
        (
            "iProduct_id" => "5",
            "fTotal_qty" => "200",
        ),
        Array
        (
            "iProduct_id" => "6",
            "fTotal_qty" => "200",
        ),
        Array
        (
            "iProduct_id" => "1",
            "fTotal_qty" => "300",
        )

);

$resultArray = array();
foreach($array as $key => $value){
    if(array_key_exists($value['iProduct_id'], $resultArray)){
        $resultArray[$value['iProduct_id']]['total_qty'] = $resultArray[$value['iProduct_id']]['total_qty'] + $value['fTotal_qty'];
    }else {
        $resultArray[$value['iProduct_id']]['product_id'] = $value['iProduct_id'];
        $resultArray[$value['iProduct_id']]['total_qty'] = $value['fTotal_qty'];
    }
}


0 commentaires

0
votes
product_id = 1
total_qty = 500
product_id = 2
total_qty = 400
product_id = 6
total_qty = 700
product_id = 4
total_qty = 300
product_id = 5
total_qty = 200

0 commentaires

0
votes

Pourquoi ne pas utiliser Fonctions de tri PHP strong> cela optimise le travail. Dans PHP 7 fort> Vous pouvez utiliser:

$array = array (
    0 => array ("iProduct_id" => 1,"fTotal_qty" => 200),
    1 => array ("iProduct_id" => 2,"fTotal_qty" => 400),
    2 => array ("iProduct_id" => 6, "fTotal_qty" => 500),
    3 => array ("iProduct_id" => 4, "fTotal_qty" => 300),
    4 => array ("iProduct_id" => 5, "fTotal_qty" => 200),
    5 => array ("iProduct_id" => 6, "fTotal_qty" => 200),
    6 => array ("iProduct_id" => 1, "fTotal_qty" => 300)
);

// Sort the data with volume descending, edition ascending
// Add $data as the last parameter, to sort by the common key
usort($array, function ($item1, $item2) {
    return $item2['fTotal_qty'] <=> $item1['fTotal_qty'];
});
echo(print_r($array,1));


0 commentaires