Heim > Artikel > Backend-Entwicklung > php中数组中某个键值为空的时候,不加入到数组。
$data = array(); if (!empty($_POST['field_id'])) { foreach ($_POST['field_id'] as $k => $v) { $data[] = array( 'field_id' => $v, 'choice' => isset($_POST['choice'][$k]) ? $_POST['choice'][$k] : '', 'uid' => $_POST['uid'], 'game_id' => $_POST['game_id'], 'server_id' => $_POST['server_id'] ); } }
Array( [0] => Array ( [field_id] => 1 [choice] => 0 [uid] => 110000110 [game_id] => 2 [server_id] => 2 ) [1] => Array ( [field_id] => 2 [choice] => 0 [uid] => 110000110 [game_id] => 2 [server_id] => 2 ) [2] => Array ( [field_id] => 3 [choice] => 1 [uid] => 110000110 [game_id] => 2 [server_id] => 2 ))
[1] => Array
(
[field_id] => 2
[choice] =>
[uid] => 110000110
[game_id] => 2
[server_id] => 2
)
像这样的情况,0和1是有值的。
你示例的数据中并没有 [choice] => 的情况
如果有的话,是仅不要 choice 项,还是整组都不要?
你对 $_POST['choice'] 循环,不是比对 $_POST['field_id'] 循环等容易点吗?
你示例的数据中并没有 [choice] => 的情况
如果有的话,是仅不要 choice 项,还是整组都不要?
你对 $_POST['choice'] 循环,不是比对 $_POST['field_id'] 循环等容易点吗?
$data = array();if (!empty($_POST['field_id'])) { foreach ($_POST['choice'] as $k => $v) { if($v == '') continue; $data[] = array( 'field_id' => $_POST['field_id'][$k], 'choice' => $_POST['choice'][$k], 'uid' => $_POST['uid'], 'game_id' => $_POST['game_id'], 'server_id' => $_POST['server_id'] ); } }
$data = array();if (!empty($_POST['field_id'])) { foreach ($_POST['choice'] as $k => $v) { if($v == '') continue; $data[] = array( 'field_id' => $_POST['field_id'][$k], 'choice' => $_POST['choice'][$k], 'uid' => $_POST['uid'], 'game_id' => $_POST['game_id'], 'server_id' => $_POST['server_id'] ); } }
$Choice=D('Myselect'); //$choices=$Choice->addAll($data); if($Choice->addAll($data)){ $back['status']='success'; $back['msg']='您的投注已经成功!'; $back['url']='game'; $this->back($back); }else{ $back['status']='error'; $back['msg']='投注失败!别重复下注哦!'; $back['url']='game'; $this->back($back); exit; } }
if($Choice->addAll($data,array(),true)){}看了下mod默认是false,改成true会一直改变数据库的值,那就没有意义了
if($Choice->addAll($data,array(),false)){}这种情况怎么判断是否已经存在数据库了呢,各位前辈有什么好的办法吗?