格納される結果$gは 1 と 2 です。以下に記述した次のコードでは、最後の要素である$array['music']2 のみを格納します。$gand 2 with mu_id(mu_idは別のテーブルの列名music) で、1 行目と 2 行目のすべての行データを to に格納し$array['music']ます。
1行目ではなく2行目(2)のみ格納しているか、ループ内で2回目の実行時に上書きしています。それを機能させるためのロジックがあれば、私に知らせてください。
foreach($genre as $g)
{
echo $g;
echo "<br>";
$array['music'] = $m -> where('mu_id', $g ) -> get();
}