前提・実現したいこと
PHPでデータベースに登録されているユーザーポイントを
ユーザー毎の合計点として表示したい。
発生している問題・エラーメッセージ
配列に計算結果が入らない。
該当のソースコード
PHP
1 2public function index() 3 { 4 // //ユーザー毎の合計点計算処理 5 $userId = Passbook::orderBy('user_id', 'asc'); 6 //合計点用の配列 7 $rankings = []; 8 9foreach($userId as $rankings) 10 { 11 //ユーザー毎に添字を宣言 12 $id = 0; 13 //前の行のユーザーと今の行のユーザーを比べる処理用 14 $user_num = 0; 15 16 //前の行が違うユーザーの処理 17 if($user_num != $userId->user_id) 18 { 19 $rankings[$id] = $userId->point; 20 $id++; 21 $user_num = $userId->user_id; 22 } 23 //前の行が同じユーザーの処理 24 else if($user_num == $userId->user_id) 25 { 26 27 $rankings[$id] += $userId->point; 28 } 29 30 } 31 //logger($rankings); 32 33 34 return view('ranking', compact('rankings')); 35 } 36
テーブルはこのような感じ
passbookテーブル
|id |user_id|point| title|
| 1| 2| 100|ボーナス|
| 2| 2| 150|ボーナス|
| 3| 2| 200|ボーナス|
| 4| 5| 100|ボーナス|
| 5| 5| 100|ボーナス|
| 6| 5| 100|ボーナス|
試したこと
logger($rankings);で配列の中身を確認したところ、このソースコードだと .
(ドット)がなぜか入っており、$rankings配列の[]の中に直接値を入れると
その値が表示されるようになっています。
何が原因か教えていただきたいです。
補足情報(FW/ツールのバージョンなど)
Windows10,vsCode
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/15 07:16
2020/06/15 07:23
2020/06/15 07:27
2020/06/15 08:02