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

时间:2012-04-30 08:31:03

标签: php arrays foreach codeigniter-datamapper

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

2 个答案:

答案 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']