私はこの質問を先に投稿しましたが、ここで誰かが解決策に近づくのを助けましたが、必要なデータを表示するようにはできません。月にグループ化された売上総数を表示する
私は以下のような構造を有し、この配列$sales
を持っている:
array(627) (
[0] => array(4) (
[id]=> (int) 1
[name] => (string) Tesla
[total]=> (string) 24
[month] => (string) 4
)
[1] => array(4) (
[id]=> (int) 1
[name] => (string) Tesla
[total]=> (string) 18
[month] => (string) 5
[2] => array(4) (
[id]=> (int) 1
[name] => (string) Tesla
[total]=> (string) 18
[month] => (string) 6
[3] => array(4) (
[id]=> (int) 2
[name] => (string) Audi
[total]=> (string) 16
[month] => (string) 4
)
[4] => array(4) (
[id]=> (int) 2
[name] => (string) Audi
[total]=> (string) 18
[month] => (string) 5
は、それが車の種類ごとに、各月の売上情報を格納しています。いくつかの月は売り上げがないので空白です。 私がやりたいことは、HTMLテーブルの下のような車と表示、販売の各タイプをループしている:
Car Jan. Feb. Mar. Apr. May. Jun. Jul, Aug. Sept. Oct. Nov. Dec
Tesla 0 0 0 24 18 18 0 0 0 0 0 0
Audi 0 0 0 16 18 0 0 0 0 0 0 0
問題があるそこに持っている場合は、私が持っている配列が唯一の月のNUMERとの合計を表示しますその月の売上高です。例えば、テスラの場合、4,5,6ヵ月しか売れていないし、9ヵ月余りが失われている。私が得た
助けました:
$result = [];
foreach($sales as $sale) {
if(!isset($result[$sale['name']]))
$result[$sale['name']] = [];
if(!isset($result[$sale['name']][$sale['month']]))
$result[$sale['name']][$sale['month']] = $sale['total'];
else
$result[$sale['name']][$sale['month']] += $sale['total'];
}
これは結構ですが、どのように私はこの配列で今年の各月をマッピングするのですか?どのように私は販売なしで月間0を表示するのですか?
私はあなたにこれを手伝っていただければ幸いです。私は少し複雑です。
更新:
foreach($cars as $car){
echo '<tr><td>'.$car .'</td>';
for($i=1;$i<=12;$i++){
if (isset($new[$i][$car])){
echo '<td>'.$new[$i][$car] . '</td>';
}else{
echo '<td>'."0".'</td>';
}
}
echo '</tr>';
}
アレイをコピーして貼り付けることができますか? 'Var_export($ sales);'とコピーしてその結果を私たちにコピーします。配列のすべての行を編集するのは非常に難しいです。 – Andreas
あなたは私の答えに何かコメントすることはできませんか? – Andreas
@アンドレアス私は本当に申し訳ありません、このソリューションをありがとう、非常にシンプルでわかりやすいです。 –