そのため、最近、配列の配列内のすべての配列の値を1つの配列に追加することに関して、多くの質問をしています。それは素晴らしく、ダンディでした-一種。
私は何かがあるという問題に直面していますvar_dump
.edは次のようになります:
array(5) {
["AB"]=>
array(3) {
["Unknown"]=>
array(810) {
[0]=>
array(7) {
["REG"]=>
float(0)
["COST"]=>
float(0)
["TOT"]=>
float(0)
["OT"]=>
float(0)
["TRVL"]=>
float(0)
["TRV OT"]=>
float(0)
["TOTAL"]=>
float(0)
},
.... (809 More)
}
["SomeName"]=>
array(810) {
[0]=>
array(7) {
["REG"]=>
float(0)
["COST"]=>
float(0)
["TOT"]=>
float(0)
["OT"]=>
float(0)
["TRVL"]=>
float(0)
["TRV OT"]=>
float(0)
["TOTAL"]=>
float(0)
},
.... (809 More)
}
}
["MB"]=>
array(3) {
["SomeName"]=>
array(110) {
[0]=>
array(7) {
["REG"]=>
float(0)
["COST"]=>
float(0)
["TOT"]=>
float(0)
["OT"]=>
float(0)
["TRVL"]=>
float(0)
["TRV OT"]=>
float(0)
["TOTAL"]=>
float(0)
},
.... (109 More)
}
}
}
注:返されたデータに基づいて配列をフォーマットしようとしましたが、これは実際のデータから実際の 800 枚のチケットを差し引いたものです。他の州やユーザーも含まれています。
ご覧のように、各プロヴィンスにはユーザーがいます。そのユーザーは、さまざまな程度の「チケット」ベースの情報を使用して、複数のプロヴィンスに表示される可能性があります。たとえば、アルバータ州 (AB) では、SomeName は 810 チケットを持っていますが、MB では同じユーザーが 110 チケットを持っています。
したがって、ユーザーの下にあるこれらすべての「配列」を1つの配列に追加したかったので、810個の配列を持つUnknownの代わりに、すべての値が合計された1つの配列があり、同じキー構造を維持します。
だから私はこれを書いた:
// $array contains the sample array above
foreach($array as $province=>$user){
foreach($user as $userName=>$tickets){
$result = array();
foreach ($tickets as $ticket) {
foreach ($ticket as $key=>$value) {
$result[$key] = number_format($result[$key] + $value, 2);
$array[$province][$userName][] = $result;
}
}
}
}
しかし、私が何か間違ったことをしていない限りUnknown
、1 つのアレイではなく 910 のチケットが戻ってきます。
最終的Unknown
には次のようになります。
["Unknown"]=>
array(1) {
[0]=>
array(7) {
["REG"]=>
float(0)
["COST"]=>
float(0)
["TOT"]=>
float(0)
["OT"]=>
float(0)
["TRVL"]=>
float(0)
["TRV OT"]=>
float(0)
["TOTAL"]=>
float(0)
}
}
...
誰かが私が間違っていることを教えてもらえますか?