2012-04-03 34 views
0

我试图做一个适合Codeignitors input_batch activerecord的数组。我正在查询一个链接表,所以我有两个列 - user_id和group_id,因为我只会为某个用户插入信息,user_id每次都是一样的,我只需要更改group_id。在CodeIgniter中创建使用的数组Activerecord input_batch

这里是我做了什么:

$str = $dataGroups['groups']; 
preg_match_all('/[0-9]/', $str, $matches); 

这一部分,我只是需要显示它是数字形式的组信息“1,2,3,4 ......”,并采取仅是外键“GROUP_ID”

之后,所有我做的值的数字正在创造我的input_batch记录会使用数组这样做:

$count = count($matches[0]); 
    $datas = array(); 

    for ($i = 0; $i < $count; ++$i) 
    { 
    $datas[] = array("user_id"=>$data['id'],"group_id" => $matches[0][$i]); 
    } 
    return $datas; 

这里$数据['id']是user_id和它对所有元素都应该是一样的。 最后我要得到相同的结构如图所示CI教程(我想是这样的,至少),它是:

(避风港;吨修改它,我只是引用它在这里),但是当我var_dump($ datas)我得到空。所以我的逻辑在某处泄漏。

感谢您的帮助 Leron

+0

你想使updateUserGroup()函数? =) – safarov 2012-04-03 17:13:52

+0

不,我更改了逻辑,在每次更正后,组的所有数据都将被删除,然后再次插入。 – Leron 2012-04-03 17:18:07

+0

好吧,它的工作原理,这是我做了$ id = $ data ['id']然后$ datas [] = array('user_id'=> $ id,'group_id'=> $ matches [0] [$ I]); – Leron 2012-04-03 17:29:34

回答

0
​​

这是我会怎么做。当你可以使用explode()时,没有理由使用“复杂”的preg_match技巧。

如果这仍然不起作用,请确保$ str和$ data ['id']有效。