0

存储的结果$g是 1 和 2。我在下面编写的以下代码,我$array['music']只存储最后一个元素 2。但我想要的是在 foreach 下执行我的 sql 查询 2 次并匹配其值为$g1和2 mu_idmu_id是另一个表的列名music)并将第1行和第2行的所有行数据存储到$array['music']

它仅存储第二行 (2) 而不是 1,或者在循环内第二次执行时覆盖它。如果有任何逻辑使它起作用,请告诉我。

    foreach($genre as $g)
    {
        echo $g;
        echo "<br>";
        $array['music'] = $m -> where('mu_id', $g ) -> get();
    }
4

2 回答 2

6

您每次都重新声明整个数组而不是添加它,而是使用它:

foreach($genre as $g)
{
    $array['music'][] = $m->where('mu_id', $g)->get();
}

甚至更好,更少的查询:

$array['music'] = $m->where_in('mu_id', $genre)->get();
于 2012-04-30T08:32:54.087 回答
0

如果要将所有数据存储在数组中,则应使用 $array['music'][]而不是 $array['music']

于 2012-04-30T08:33:06.817 回答