php中数组中某个键值为空的时候,不加入到数组。

奔波在生活路上 程序猿  2015-11-03 06:37:26

$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
)

)



当choiece等于空的时候 [choice] =>没有值的时候不加入到data数组里面怎么实现呢?
...全文
157 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
if($Choice->addAll($data,array(),true)){}看了下mod默认是false,改成true会一直改变数据库的值,那就没有意义了 if($Choice->addAll($data,array(),false)){}这种情况怎么判断是否已经存在数据库了呢,各位前辈有什么好的办法吗?
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
$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']
);
}
}

谢谢版主,不过我下面用的批量添加的时候,如果已经选择过了的会提示失败,tp里面addall怎么判断是否已经添加过了呢
$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;
}
}

  • 打赏
  • 举报
回复
xuzuning 2015-11-03
$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']
      );  
  }   
}
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
你示例的数据中并没有 [choice] => 的情况 如果有的话,是仅不要 choice 项,还是整组都不要? 你对 $_POST['choice'] 循环,不是比对 $_POST['field_id'] 循环等容易点吗?
Array ( [0] => Array ( [field_id] => 1 [choice] => 0 [uid] => 110000110 [game_id] => 2 [server_id] => 2 ) [1] => Array ( [field_id] => 2 [choice] => [uid] => 110000110 [game_id] => 2 [server_id] => 2 ) [2] => Array ( [field_id] => 3 [choice] => [uid] => 110000110 [game_id] => 2 [server_id] => 2 ) ) 大概就是这样一个效果,没有值的就不要了,显示成这样 Array ( [0] => Array ( [field_id] => 1 [choice] => 0 [uid] => 110000110 [game_id] => 2 [server_id] => 2 ) ) 只有choice没有值的就整个数组都不要了。
  • 打赏
  • 举报
回复
xuzuning 2015-11-03
你示例的数据中并没有 [choice] => 的情况 如果有的话,是仅不要 choice 项,还是整组都不要? 你对 $_POST['choice'] 循环,不是比对 $_POST['field_id'] 循环等容易点吗?
  • 打赏
  • 举报
回复
[1] => Array ( [field_id] => 2 [choice] => [uid] => 110000110 [game_id] => 2 [server_id] => 2 ) 像这样的情况,0和1是有值的。
  • 打赏
  • 举报
回复
相关推荐
发帖
基础编程
加入

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2015-11-03 06:37
社区公告
暂无公告