我有带复选框值和id值的数组。复选框可以有多个值,否则id只有一个。我的数组是$data2
,print_r:
Array (
[checkbox] => Array (
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 8
[5] => 9
[6] => 10
[7] => 21
)
[id] => 8
)
模型中的代码是
function checkboxes($data2)
{
foreach($data2->result() as $row)
{
$data= array(
'story'=> $row->checkbox,
'id'=>$row->id
);
$this->db->insert('stories_to_categories',$data);
}
}
问题是因为我有数组中的数组有人可以帮我将这段代码插入db吗?
我也希望插入相同的数字ID和复选框,例如3个ID值为1和3的复选框值
答案 0 :(得分:1)
这是Dummy的答案,它将清除你的概念,当你使用多维时,首先如何在codeigniter中训练多维数组,这样你需要一个键来跟踪你的记录哪个记录属于哪个键所以它可以是有助于获取值到目前为止我已经专门为您创建了一个简单的虚拟程序,并且也在您的代码中工作,所以您可能会喜欢我的努力以及我希望您的问题将得到解决。还要查看php手册和文档这将使你更清楚多维数组Multidimensional array documentation以及我使用函数sizeof()
这个函数用于测量对象的大小,无论是自己创建的还是数据库对象,它在这里有助于测量是文档链接,检查我们如何使用sizeof documentation。
这是虚拟代码。
$section = array( 'Clients'=>array('pepsi','cocacola','sevenup'),
'Services'=>array('Web Design','Graphic Design','DataMigration'),
'Techonologies'=>array('codeigniter','postgresql','ubuntu')
);
$i=0;
foreach($section as $key => $row)
{
//taking up specific value
echo $section['Techonologies'][0];
echo '<pre>';
//checking the size of the key in array Clients is a key and it has 3 values
while($i<sizeof($row))
{
echo $row[$i].'<br/>';
$i++;
}
$i=0;
echo '</pre>';
}
echo '<pre>';
print_r($section);
echo '</pre>';
}
这是您的代码,我希望它可以帮助您摆脱困境。
function checkboxes($data2)
{
$i=0;
$data=$data2->result();
foreach($data as $key => $row)
{
while($i<sizeof($row))
{
$data= array(
'story'=> $row[$i],
'id'=>$data['id'][0]
);
$this->db->insert('stories_to_categories',$data);
$i++;
}
}
}