Примером этого исключаемого исключения является: Когда вы пытаетесь проверить что-то, это null.
Например:
string testString = null; //Because it doesn't have a value (i.e. it's null; "Length" cannot do what it needs to do)
if (testString.Length == 0) // Throws a nullreferenceexception
{
//Do something
}
Время выполнения .NET исключение NullReferenceException при попытке выполнить действие над чем-то, что не было инстанцировано, т.е. код выше.
По сравнению с ArgumentNullException, которое обычно выбрано как защитная мера, если метод ожидает, что то, что происходит
Дополнительная информация находится в C # NullReferenceException и Null Parameter .
<?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;
}
Пример в 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);
}
Итак, сначала вам нужно $amountsArray
, чтобы каким-то образом присвоить значения, которые вы указали. Затем:
$bankTotals = array();
foreach($amountsArray as $amount)
{
$bankTotals[$amount['name']] += $amount['amount'];
}
После этого $bankTotals
представляет собой массив, индексированный по имени банка, со значением общей суммы для банка. Вы можете использовать этот массив, как вы считаете нужным здесь.
Одна вещь, которая может быть полезна, - это еще один цикл foreach
, чтобы распечатать все:
foreach($bankTotals as $name => $amount)
{
echo $name.".....".$amount."\n";
}
Я предпочел бы добавить
$bankTotals = array();
foreach($amountsArray as $amount)
{
if(isset($bankTotals[$amount['name']]))
$bankTotals[$amount['name']] += $amount['amount'];
else
$bankTotals[$amount['name']] = $amount['amount'];
}
$a = arrayofindonesianbanks;
foreach ($a as $anarrays) {
echo "$anarrays[name]." ".$anarrays[amount]";
}
}
см. foreach в php.