0

外部データベースからデータを取得する機能があり、ID、名前、ジャンルなどの特定の映画情報を取得します。映画のジャンルがたとえばアニメーションの場合、この 1 つのジャンルのみをデータベースに追加したいと考えています。isset を使用して問題を解決できるようになりましたが、ジャンルの db エントリが null になるため、これを回避したいと考えています。この問題にアプローチする最良の方法は何ですか? foreach ループを使用していますか?

$records = array(
    array('film_id' => $movies['id'], 'genre_id' => $movies['genre'][0]),
    array('film_id' => $movies['id'], 'genre_id' => $movies['genre'][1]),
    array('film_id' => $movies['id'], 'genre_id' => $movies['genre'][2])
);

$this->db->insert_batch('film_genre', $records);
4

2 に答える 2

0

MysqlのGROUP BY関数を使用して、フェッチしたデータをグループ化できます

于 2013-04-15T14:50:17.983 に答える
0

array_filterを使用することもできます

$arr = array(

    array("id"=>3, "genre"=>"action"),
    array("id"=>13, "genre"=>"comedy"),
    array("id"=>23, "genre"=>"action"),
    array("id"=>53, "genre"=>"comedy"),
    array("id"=>63, "genre"=>"drama"),
    array("id"=>73, "genre"=>"action"),
    array("id"=>83, "genre"=>"drama"),

);

function genre($var)
{
    if($var['genre'] == 'action')
    {
        return $var;
       // you can also do the insert here like $this->db->insert();
    }
}

$filtered = array_filter($arr, "genre");

print_r($filtered)
于 2013-04-15T14:28:45.673 に答える