初めて質問させていただきます。
前提・実現したいこと
テーブルAより店舗情報を取得、テーブルBにて各店舗の来店者数を集計し、
テーブルAに来客者数のカラムを結合し、配列形式で返したい。
発生している問題・エラーメッセージ
プログラム上エラーは発生しないが、一部両テーブルに存在するのに
テーブルBの内容が反映されないレコードが存在する
該当のソースコード
一部抜粋
```PHP foreach($A as $a{ $key = $B->search(function($item, $key) use($A){ return $item->id==$a->id; }); $a->count = $key ? $B[$key]->count : 0; } return compact('list');
補足 $A:テーブルAの検索結果を格納した変数 $B:テーブルBの検索結果を格納した変数 この構文の直前に$Bのデータ取得処理が記載されています。 $key = $テーブルB->search(function($item, $key) use($A){ return $item->id==$A->id; }); ↑この部分の処理がいまいち分かりません。($aのidが$Bに存在するか判定し、存在する場合$Bのインデックスを返してると推測しています) ↓ 想定していた動作をしておりました。 ### 試したこと いろいろ試した結果、原因はわかりませんがテーブルBの1行目のidがうまく結合されないということが分かっております。(0が返される) ($B取得時にorderByをかけると反映されない箇所が変化する) よろしくお願いいたします。 追記 $Aに格納されているデータ(カラムは他にもありますが割愛します) |id|name|post|etc| |:--|:--:|--:|--:| |264|...|...|...| |212|...|...|...| |265|...|...|...| |431|...|...|...| |266|...|...|...| |267|...|...|...| |268|...|...|...| |269|...|...|...| |379|...|...|...| |323|...|...|...| |435|...|...|...| |374|...|...|...| |375|...|...|...| |383|...|...|...| $Bに格納されているデータ |id|count| |:--|:--:| |383|43| |435|15| |323|13| |375|28| |374|63| |268|8| |266|397| |264|23| |431|24| |265|29| データの中身はcount以外割愛しておりますが並び順は実データと同じになっております。 このデータパターンの際にid:383が反映されないという現象が発生しています。
回答3件
あなたの回答
tips
プレビュー