2010-07-20 56 views
7

मेरे पास मेरी सरणी डेटा के आधार पर के रूप में नीचे दिखाया गया है:सरणी राशि एक ही कुंजी

Array ( 
    [0] => Array ([name] => Bank BRI [amount] => 0) 
    [1] => Array ([name] => Bank BRI [amount] => 0) 
    [2] => Array ([name] => Bank BCA [amount] => 1412341234) 
    [3] => Array ([name] => Bank CIMB Niaga [amount] => 532532552) 
    [4] => Array ([name] => Bank BRI [amount] => 34534534) 
    [5] => Array ([name] => Bank CIMB Niaga [amount] => 453425243) 
    [6] => Array ([name] => Bank BRI [amount] => 0) 
    [7] => Array ([name] => Bank BNI [amount] => 124124) 
    [8] => Array ([name] => Bank CIMB Niaga [amount] => 352345623) 
    [9] => Array ([name] => Bank BCA [amount] => 23432423) 
    [10] => Array ([name] => Bank Mandiri [amount] => 0) 
    [11] => Array ([name] => Bank BCA [amount] => 0) 
    [12] => Array ([name] => Bank BCA [amount] => 0) 
    [13] => Array ([name] => Bank Permata [amount] => 352352353) 
) 

कैसे 'राशि' एक ही 'बैंक का नाम' के आधार पर योग करने के लिए। सी # में

Bank BRI........... with '*total amount*' 
Bank BCA........... with '*total amount*' 
Bank CIMB NIAGA.... with '*total amount*' 
Bank BNI........... with '*total amount*' 
Bank Mandiri....... with '*total amount*' 
Bank Permata....... with '*total amount*' 
+0

कौन-सी भाषा जोड़ना होगा ?? – colithium

+0

@ कंधरा, आपके प्रश्न के शीर्षक में ':: सोल्वड ::' डालने की बजाय, केवल उस उत्तर को स्वीकार करें जो आपके लिए समस्या हल करता है (उस उत्तर के आगे 'वी' जैसा आइकन क्लिक करें)। धन्यवाद। –

+0

@ बार्ट, उसे इसका उल्लेख करने के लिए धन्यवाद। एक नोट: मैं इसे "वी" से अधिक चेक-मार्क कहूंगा :) –

उत्तर

5
<?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; 
} 
+0

धन्यवाद हुसनी, वास्तव में महान कोड, यह काम करता है। – Chandra

+0

धन्यवाद @ हुस्नी, वाह !! कोड !! – TomPHP

2

उदाहरण::

मेरे डेटा इस तरह दिखाया गया है चाहिए

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); 
} 
+0

धन्यवाद, मैं आपकी स्क्रिप्ट को PHP में लागू करने की कोशिश करूंगा। – Chandra

+0

मेरी स्क्रिप्ट फंस गई ... मैं अभी भी आपके सी # को PHP में बदलने की कोशिश कर रहा हूं। कोई उपाय? धन्यवाद। – Chandra

+0

गुफा की लिपि को बदलने की कोई आवश्यकता नहीं है JGB146 प्रतिक्रिया वस्तुतः वही है। – ozatomic

0
$a = arrayofindonesianbanks; 

foreach ($a as $anarrays) { 
     echo "$anarrays[name]." ".$anarrays[amount]"; 
    } 
} 

php में foreach देखते हैं।

+0

बहुत बहुत धन्यवाद, मैं जीयूएफएफए एल्गोरिदम को PHP में बदलने की कोशिश कर रहा हूं। लेकिन मैं अभी भी अटक गया/उलझन में। – Chandra

+0

हल हो गया! धन्यवाद। – Chandra

+0

ठीक है क्लिक करें tanda oknya aahahah। –

7

तो, सबसे पहले आपको सूचीबद्ध मूल्यों को असाइन करने के लिए $amountsArray की आवश्यकता है, किसी भी तरह। तब:

$bankTotals = array(); 
foreach($amountsArray as $amount) 
{ 
    $bankTotals[$amount['name']] += $amount['amount']; 
} 

इस के बाद, $bankTotals एक सरणी बैंक का नाम पर सूचीबद्ध, बैंक के लिए कुल राशि के मूल्य के साथ है। आप इस सरणी का उपयोग यहां से देख सकते हैं जैसा कि आप यहां से फिट बैठते हैं।

एक बात है कि उपयोगी हो सकता है एक और foreach पाश यह सब बाहर मुद्रित करने के लिए है:

foreach($bankTotals as $name => $amount) 
{ 
    echo $name.".....".$amount."\n"; 
} 
+0

धन्यवाद JGB146 मैं बिना किसी परिणाम के लगभग 3 दिनों के लिए स्क्रिप्टिंग कर रहा हूं ... अभी हल हो गया! – Chandra

+0

यह एक सबसे आसान समाधान है। मैं यह कैसे करता हूं। – PHPGuru

1

मैं नहीं बल्कि

$bankTotals = array(); 
foreach($amountsArray as $amount) 
{ 
if(isset($bankTotals[$amount['name']])) 
    $bankTotals[$amount['name']] += $amount['amount']; 
else 
    $bankTotals[$amount['name']] = $amount['amount']; 
} 
संबंधित मुद्दे