$data = $_POST["a"].",".$_POST["b"].",".$_POST["c"].",".$_POST["d"];
・
・
・
上記のような膨大なデータがある際に
$dataを書き込みをするモノを作成しているのですが
受け取ったデータが空である時に
文字列(2バイト空白など)をいれたいと思っております。
それぞれのデータを見て
$_POST["a"] == ""
$_POST["b"] == ""
$_POST["c"] == ""
$_POST["d"] == ""
・
・
・
と記載するわけにもいかず
どのようにすれば効率よく受け取ったデータの
中身を判断できるかアドバイスいただきたいとおもいます。
宜しくお願いいたします。
foreach ($_POST as $key => $value) if ($value == '') $_POST[$key] = "空白" ;
とかでは?
空白である際に入れる文字列はすべて同じと仮定します。それならforeach構文が利用できます。
foreach( $_POST as $key => $value) { //配列$_POST内の各キーと値を$key,$valueだとして if (empty($value)) { //$valueが空なら $value = " "; //$valueに2バイト空白を代入 } } //これを$_POSTのすべてのキーと値に対して繰り返す
こんな感じでよいはずです。
ありがとうございます。
参考にさせていただきます。
foreach($_POST AS $key => $value){ if(empty($value)){ $_POST[$key] = ''; } }
ありがとうございます。
参考にさせていただきます。
挿入するのがすべて同じ値なら一文で済みます。
$_POST = preg_replace("/^$/", " ", $_POST);
それぞれ違う値を入れる場合は送信されるデータに合わせたキーを持つ連想配列をあらかじめ作って foreach で回せば良いと思います。
$empty = array('a' => '未記入 a', 'b' => '未記入 b', 'c' => '未記入 c'); foreach ($empty as $key => $val) if (!strlen($_POST[$key])) $_POST[$key] = $val;
ありがとうございます。
参考にさせていただきます。
なるほど。
そういう形もありますね。
参考にさせていただきます。