-3

重複の可能性:
配列の印刷

public function computeGHComponents()
{
    error_reporting (E_ALL^ E_NOTICE);          

    $total = null;

    $result=array();


    foreach ($this->transaction as $t){
        $amount = (float) $t['Amount'];

        if (isset($this->totals[ $t['SiteID'] ][ $t['TransactionType'] ])){
           $this->totals[ $t['SiteID'] ][ $t['TransactionType'] ] += (float) $amount;
        } else {
           $this->totals[ $t['SiteID'] ][ $t['TransactionType'] ] = (float) $amount;
        }
    }

    foreach($this->totals as $key => $value)
    {
        $result =            array_merge($result,array($key=>array("Deposit"=>$value['D'],"Redemption"=>$value['W'],"Reload"=>$value['R']))); 
    }

    print_r($result);   

} 

キーは SiteID である必要があります。どうすればそれを行うことができますか?

この種の出力が必要です:

array ([147]=>array([Deposit] => "total amount", [Reload]=> "total amount" [Redemption]=> "total amount"))

array ([150]=>array([Deposit] => "total amount", [Reload]=> "total amount" [Redemption]=> "total amount"))

array ([3]=> array([Deposit] => "total amount", [Reload]=> "total amount" [Redemption]=> "total amount"))

キーは SiteID である必要があります。コードを修正してください:(

4

1 に答える 1

1

array_merge()を使用しているため、これは正常です。ドキュメントを参照してください:http: //php.net/manual/en/function.array-merge.php

数値キーを使用した入力配列の値は、結果配列のゼロから始まる増分キーで番号が付け直されます。

そのため、キーであるSiteIDの番号が付け直されます。

次に、キーを保持するために、これを行う方が良いでしょう:

$result[$key] = array("Deposit"=>$value['D'], "Redemption"=>$value['W'], "Reload"=>$value['R']);
于 2012-08-10T08:51:38.010 に答える