首頁 > 後端開發 > php教程 > php中数组中某个键值为空的时候,不加入到数组。

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

WBOY
發布: 2016-06-20 12:45:05
原創
1563 人瀏覽過

	$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数组里面怎么实现呢?


回复讨论(解决方案)

[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'] 循环等容易点吗?



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没有值的就整个数组都不要了。

$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']      );    }   }
登入後複製
登入後複製


谢谢版主,不过我下面用的批量添加的时候,如果已经选择过了的会提示失败,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;				}			}
登入後複製

if($Choice->addAll($data,array(),true)){}看了下mod默认是false,改成true会一直改变数据库的值,那就没有意义了
if($Choice->addAll($data,array(),false)){}这种情况怎么判断是否已经存在数据库了呢,各位前辈有什么好的办法吗?

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板