存储在$g
中的结果是1和2.下面我写的代码,我的$array['music']
只存储了最后一个元素2.但我想要的是执行我的sql在foreach下查询2次并匹配$g
的值{1}和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();
}
答案 0 :(得分:6)
您每次都要重新声明整个数组,而不是添加它,而是使用它:
foreach($genre as $g)
{
$array['music'][] = $m->where('mu_id', $g)->get();
}
甚至更好,更少的查询:
$array['music'] = $m->where_in('mu_id', $genre)->get();
答案 1 :(得分:0)
如果您想将所有数据存储在数组中,那么您应该使用$array['music'][]
代替$array['music']