存储在
$g
中的结果是 1 和 2。我在下面编写的以下代码,我的$array['music']
只存储最后一个元素 2。但是我想要的是 foreach 下执行我的 sql 查询 2 次,并将 $g
的值 1 和 2 与 mu_id
匹配(mu_id
是另一个表 music
中的列名),并将第 1 行和第 2 行的所有行数据存储到 $array['music']
中。
它只存储第二行 (2) 而不是 1,或者在循环内第二次执行时覆盖它。如果有任何逻辑可以使其工作,请告诉我。
foreach($genre as $g)
{
echo $g;
echo "<br>";
$array['music'] = $m -> where('mu_id', $g ) -> get();
}
您每次都重新声明整个数组而不是添加到其中,请改用以下内容:
foreach($genre as $g)
{
$array['music'][] = $m->where('mu_id', $g)->get();
}
甚至更好,更少的查询:
$array['music'] = $m->where_in('mu_id', $genre)->get();
如果要将所有数据存储在数组中,则应使用$array['music'][]
而不是$array['music']