2011-12-27 17 views
2

空のフィールド値をNULLに置き換えようとしていますが、それを行う方法が分からないようです。私はarray_maparray_filter、およびarray_walkを試しましたが、役に立たないです。例:

function replaceWithNull($var) 
{ 
    if (empty($var) || $var == ' ') { 
     $var = "NULL"; 
    } 
} 

array_walk($_POST, "replaceWithNull"); 

代わりに、空白/空白のままです。私は何が欠けていますか?

+0

ああ、大漁、あなたの両方。私はそれが何か単純でなければならないと考えました。私は両方の答えにチェックマークを付けることはできません。 –

+1

['array_walk_recursive'](http://php.net/array_walk_recursive)をチェックしてみてください。 – Maerlyn

答えて

5

変数のローカルコピーのみを変更しています。あなたは、配列の要素を変更するために渡す引数の参照を使用する必要が

function replaceWithNull(&$var) 
{ 
    if (empty($var) || $var == ' ') { 
     $var = "NULL"; 
    } 
} 
+0

downvoteの理由は何ですか? –

+0

私はdownvoteをしなかった...私はこれと答えとして選択した回答の両方をupvoted。 –

-2

はちょっと人が、このコードを見て:

のconfig.phpを

<?php 
if(is_array($_POST) and count($_POST) > 0) 
{ 
    foreach($_POST as $key => $value) 
    { 

     if(is_array($value)) 
     { 
      foreach($value as $k => $val) 
      { 
       if(is_string($val)) 
       { 
        if(empty($val) OR strlen(preg_replace("/(\s+)?/", $val)) == 0) 
        { 
         $_POST[$key][$k] = null; 
        } 
       } 
      } 
     }else{ 
      if(empty($value) OR strlen(preg_replace("/(\s+)?/", $value)) == 0) 
      { 
       $_POST[$key] = null; 
      } 
     } 


    } 
} 
?> 

TEST:

<?php 
var_dump($_POST); 
exit; 
?> 

myApp.php

<?php 
include('config.php'); 
//.... your code here.... 
if(is_null($_POST['firstname'])) 
{ 
    echo 'hey men! error!'; 
} 
?> 
関連する問題