前提・実現したいこと
以下のようなhogeとfugaの配列があったとして
キーや形は全く同じとします。
その上でtype,kbnごとにサマリーを行いたいです。
foreachで愚直に取る方法しか思い付かず、スマートに取得することは可能でしょうか?
例としては、以下のような配列があったとすると
hoge [ "type"=> '001', "kbn"=> 'AAA', "tax"=> 1, "amount"=> 100 ] [ "type"=> '002', "kbn"=> 'AAAA', "tax"=> 1, "amount"=> 100 ] fuga [ "type"=> '001', "kbn"=> 'AAA', "tax"=> 1, "amount"=> 100 ] [ "type"=> '002', "kbn"=> 'AAA', "tax"=> 1, "amount"=> 100 ] [ "type"=> '001', "kbn"=> 'BBB', "tax"=> 1, "amount"=> 100 ]
合計値が以下のようにとりたいです↓
+" sum": array:1 [ 0 => {#1081 +"type": 001 +"kbn": "AAAA" +"tax": 合計値 +"amount": 合計値 } ] +"sum": array:1 [ 0 => {#1081 +"type": 001 +"kbn": "BBB" +"tax": 合計値 +"amount": 合計値 } ] +"sum": array:1 [ 0 => {#1081 +"type": 002 +"kbn": "BBB" +"tax": 合計値 +"amount": 合計値 } ]
試したこと
foreachで普通に書いたが、array_sum、array_filter、array_columnなどを使ってうまくできないか、
悩んでいる
配列はPHPのソースで書いてもらえませんか?
[
"type"=> 001,
"kbn"=> "AAAA",
"tax"=> 1,
"amount"=> 100
]
こうですか?
そういう感じです。「001」は文字列なら"001"です
すいません、その辺実データ手直しして投稿しているため適当です。
申し訳ないです。
それでよろしくお願いします。
例示されたソースを書き直してください
配列データはDBから取得したものではないのですか?
phper.k
配列というかDB:selectで取ってきたデータです
色々と事情があって望んだ結果を既存のデータマージで行うことになりました
sqlで書くことができたら楽ですが
ソース変えました
回答2件
あなたの回答
tips
プレビュー