J'ai mes données matricielles comme indiqué ci-dessous:
array ( 'Bank BRI' => 34534534, 'Bank BCA' => 1435773657, 'Bank CIMB Niaga' => 1338303418, 'Bank BNI' => 124124, 'Bank Mandiri' => 0, 'Bank Permata' => 352352353, )
6 Réponses :
Exemple en C #:
Dictionary<string,object>[] items = { new Dictionary<string, object> {{ "name", "Bank BRI"}, {"amount", 0 }}, new Dictionary<string, object> {{ "name", "Bank BRI"}, {"amount", 0 }}, new Dictionary<string, object> {{ "name", "Bank BCA"}, {"amount", 1412341234 }}, new Dictionary<string, object> {{ "name", "Bank CIMB Niaga"}, {"amount", 532532552 }} }; var amounts = new Dictionary<string, int>(); foreach (var item in items) { string bank = (string)item["name"]; int amount = (int)item["amount"]; if (amounts.ContainsKey(bank)) { amounts[bank] += amount; } else { amounts.Add(bank, amount); } } foreach (var amount in amounts) { Console.WriteLine("{0}: {1}", amount.Key, amount.Value); }
Merci, je vais essayer de mettre en œuvre votre script en PHP.
Mon script collé ... J'essaie toujours de convertir votre C # en PHP. une idée? Merci.
Il n'est pas nécessaire de convertir la réponse JGB146 de Guffa's Script est pratiquement la même.
$a = arrayofindonesianbanks; foreach ($a as $anarrays) { echo "$anarrays[name]." ".$anarrays[amount]"; } } see foreach in php.
Merci beaucoup, j'essaie de convertir Guffa Algorithm en PHP. Mais je suis toujours coincé / confus.
Donc, tout d'abord, vous avez besoin $ quantitéparray code> pour avoir attribué les valeurs que vous avez répertoriées, d'une manière ou d'une autre. Ensuite:
foreach($bankTotals as $name => $amount)
{
echo $name.".....".$amount."\n";
}
Merci JGB146 Je suis script depuis près de 3 jours sans aucun résultat ... Résolu maintenant!
@Jeffrey Blake, que si nous avons deux clés pour fusionner. Disons que le nom de la banque et l'adresse bancaire ne résumeront que le montant que si seuls le même nom et le même nom ... ont effectivement ces problèmes en ce moment ... s'il vous plaît aider
<?php // array of bank structure $banks = array(); $banks[] = array('name'=>'Bank BRI','amount'=>rand()); $banks[] = array('name'=>'Bank BRI','amount'=>rand()); $banks[] = array('name'=>'Bank BCA','amount'=>rand()); $banks[] = array('name'=>'Bank CIMB','amount'=>rand()); $banks[] = array('name'=>'Bank BRI','amount'=>rand()); $banks[] = array('name'=>'Bank CIMB','amount'=>rand()); $banks[] = array('name'=>'Bank BRI','amount'=>rand()); $banks[] = array('name'=>'Bank BNI','amount'=>rand()); $banks[] = array('name'=>'Bank CIMB','amount'=>rand()); $banks[] = array('name'=>'Bank BCA','amount'=>rand()); $banks[] = array('name'=>'Bank Mandiri','amount'=>rand()); $banks[] = array('name'=>'Bank BCA','amount'=>rand()); $banks[] = array('name'=>'Bank BCA','amount'=>rand()); $banks[] = array('name'=>'Bank Permata','amount'=>rand()); // begin the iteration for grouping bank name and calculate the amount $amount = array(); foreach($banks as $bank) { $index = bank_exists($bank['name'], $amount); if ($index < 0) { $amount[] = $bank; } else { $amount[$index]['amount'] += $bank['amount']; } } print_r($amount); //display // for search if a bank has been added into $amount, returns the key (index) function bank_exists($bankname, $array) { $result = -1; for($i=0; $i<sizeof($array); $i++) { if ($array[$i]['name'] == $bankname) { $result = $i; break; } } return $result; }
Je préférerais ajouter
$bankTotals = array(); foreach($amountsArray as $amount) { if(isset($bankTotals[$amount['name']])) $bankTotals[$amount['name']] += $amount['amount']; else $bankTotals[$amount['name']] = $amount['amount']; }
@ La boucle de Shubham est une technique parfaitement adéquate.
Vous voudrez peut-être utiliser L'opérateur coalescent NULL empêche de générer des avertissements / erreurs d'ajouter aux éléments non encore déclarés dans le tableau de résultat p> code: ( sortie: p> array_reduce () code> si vous voulez: p>
array (
'Bank BRI' => 34534534,
'Bank BCA' => 1435773657,
'Bank CIMB Niaga' => 1338303418,
'Bank BNI' => 124124,
'Bank Mandiri' => 0,
'Bank Permata' => 352352353,
)