我試圖用NULL替換空字段值,但似乎無法弄清楚如何去做。我試過array_map
,array_filter
和array_walk
,但無濟於事。例如:
function replaceWithNull($var)
{
if (empty($var) || $var == ' ') {
$var = "NULL";
}
}
array_walk($_POST, "replaceWithNull");
而是保持空白/空白。我錯過了什麼?
我試圖用NULL替換空字段值,但似乎無法弄清楚如何去做。我試過array_map
,array_filter
和array_walk
,但無濟於事。例如:
function replaceWithNull($var)
{
if (empty($var) || $var == ' ') {
$var = "NULL";
}
}
array_walk($_POST, "replaceWithNull");
而是保持空白/空白。我錯過了什麼?
你必須使用合格爲了論證引用改變數組中的元素:
function replaceWithNull(&$var)
{
...
}
否則,你將只改變變量的一個副本。
您只修改變量的本地副本。您必須pass the value by reference修改實際的數組中的值:
function replaceWithNull(&$var)
{
if (empty($var) || $var == ' ') {
$var = "NULL";
}
}
downvote的任何理由? – 2011-12-27 17:54:24
我沒有downvote ...我upvoted這個和我選擇的答覆作爲答案。 – 2011-12-28 14:11:17
嘿傢伙看看這個代碼:
的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!';
}
?>
啊,好趕上,雙方你。我認爲它必須是簡單的。一個恥辱,我不能給這兩個答案的複選標記。 – 2011-12-27 17:25:46
您可能想查看['array_walk_recursive'](http://php.net/array_walk_recursive)。 – Maerlyn 2011-12-27 17:32:03