2012-04-03 49 views
0

我使用函数preg_match_all得到一个数组。该代码是因为它是:把相同的键放到一个数组的所有元素中

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

它从类型返回的关联数组:

array(5) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" [3]=> string(1) "4" [4]=> string(1) "5" } 

当值实际上ID的一个链接表,在那里我有两个外键,值的一个FK是上面的数组的值,我需要的是分配键的另一个值应该是相同的所有元素,因为我要用它在表中多次插入。所以要清楚如果我想插入所有具有id 67的值,我想我需要类似这样的东西来形成我的codeigniter活动记录:

array(5){[67] => string(1)“1”[67] => string(1)“2”[67] => string(1)“3”[67] =>串(1) “4”[67] =>串(1) “5”}

并使用AR命令:

$这 - > DB->刀片( 'mytable的' ,$ matches [0]);

我要第一次尝试它,所以任何建议是赞赏,但最重要的是要改变与相同数字的键的价值,也许如果你能告诉如果这是正确的方式使用CodeIgniter AR进行多重插入。 感谢

Leron

回答

3

你不能在一个阵列重复键,他们有他们在那里为引用是唯一的!

但是,你可以做什么有一个关联数组,像这样:

$array = array(
    1 => array(
     'id' => 67 
    ), 
    2 => array(
     'id' => 67 
    ) 
); 
0

诶,如何将这项工作?你不能有多个相同的数组键;你可以做的是让一个数组存储所有字符串在同一个键下,例如

array(
    "67" => array(
     "string 1", 
     "string 2", 
     ... 
     "string 5" 
    ) 
); 

,我不知道如何会为你的数据库工作......所有这一切都像嗅觉差的数据库/表的设计 - 即你显然不能用“67”作为主键,等再您不应该根据其值添加行,而应使用唯一键(例如,自动递增列)

相关问题