php,thinkphp 如何插入二维数组

就像是这样的。
$uid=10;
$name="小明";
$sex="男";
$id=array(1,2,3,5);
这样的数据怎么在ThinkPHP插入数据库?
$ids=implode(",",$id);
$jid=is_array($id)?$ids:$id;
$data=array('uid'=>$uid,'name'=>$name,'sex'=>$sex,'id'=>$jid);
$boolData=D('stu')->add($data);
只能写到这样了,但还是不行。 求大神

第1个回答  2013-09-21
你在设计数据库的时候吧$id字段设定为可以存放数组的数据类型试试看。比如object
第2个回答  2013-09-22
你写的是数组,数据库就会存一个数组
第3个回答  2013-09-22
$id=array(1,2,3,5); $ids=implode(",",$id);这样已经是错的了
你可以用foreach 来插入
foreach($id as $v ){
$data=array('uid'=>$uid,'name'=>$name,'sex'=>$sex,'id'=>$v);

D('stu')->add($data);

}
第4个回答  推荐于2016-03-23
以合并的话,可以如下面的样子写:
<php
$a1=array(
'0' => array( "id" => '1', 'name'=>'aa' ),
'1' => array( "id" => '2', 'name'=>'bb' )
);
$a2=array(
'0' => array( "id" => '1', 'pwd'=>'888' ),
'1' => array( "id" => '2', 'pwd'=>'999' )
);
$newarray = array();
$a1new = array();
$a2new = array();
foreach($a1 as $row){
$a1new[$row['id']] = $row['name'];
}
foreach($a2 as $row){
$a2new[$row['id']] = $row['pwd'];
}
foreach($a1new as $key=>$value){
$newarray[] = array(
'id'=>$key,
'name'=>$value,
'pwd'=>isset($a2new[$key])?$a2new[$key]:'',
);
}
print_r($newarray);