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. 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
5 Réponses :
Vous pouvez le faire avec simple maintenant for-boucle code> res code> contient (la touche est le Product_id code> et la valeur est le total_qty code>): p>
Merci beaucoup et tu m'as sauvé. Ça marche vraiment bien pour moi et merci encore une fois @David Winder
Essayez ceci pour plus de détails sortie p>
Bonne journée
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'];
}
}
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
Pourquoi ne pas utiliser Fonctions de tri PHP strong> cela optimise le travail. Dans $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));
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