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


array is overwritten by the last element in php

存储在

$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']