PHP の配列内のキー値が空の場合、そのキー値は配列に追加されません。
Jun 20, 2016 pm 12:45 PM
$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 ))
choice が空の [choice] => 値なしの場合データ配列に追加せずにこれを実現できますか?
ディスカッションへの返信 (解決策)
[1] => 配列
(
[フィールド ID] => 2
[選択] =>
[uid] => 1100 00110
[ゲーム ID] => ;
例のデータには [choice] => のケースはありません
ある場合は、選択項目のみを削除する必要がありますか、それともグループ全体を削除する必要がありますか?
$_POST['field_id'] ループよりも $_POST['choice'] ループの方が比較しやすいと思いませんか?
例のデータには [choice] => のケースはありません
$_POST['field_id'] ループよりも $_POST['choice'] ループの方が比較しやすいと思いませんか?
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)){}这种情况怎么判断是否已经存在数据库了呢,各位前辈有什么好的办法吗?

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LaravelのバックエンドでReactアプリを構築する:パート2、React
