数组被php中的最后一个元素覆盖

Sha*_*Roy 0 php arrays foreach codeigniter-datamapper

存储的结果$g是1和2.下面我写的代码,我的$array['music']商店只有最后一个元素是2.但我想要的是在foreach下执行我的sql查询2次并匹配其值为$g1和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();
    }
Run Code Online (Sandbox Code Playgroud)

Wes*_*rch 6

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

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

甚至更好,更少的查询:

$array['music'] = $m->where_in('mu_id', $genre)->get();
Run Code Online (Sandbox Code Playgroud)