如何在php数组中将空值转换为空字符串?

XMe*_*Men 12 php arrays null

我想转换这个Array [4]不应该为null的数组,它可以给出空格(空字符串).

Array (
    [0] => 1
    [1] => 4
    [2] => 0
    [3] => V
    [4] => 
    [5] => N 
);
Run Code Online (Sandbox Code Playgroud)

(改变的原因,与一般问题无关)

Fatal error: Uncaught exception
'PDOException' with message 'Database
error [23000]: Column 'message' cannot
be null, driver error code is 1048' in
Run Code Online (Sandbox Code Playgroud)

小智 30

PHP 5.3+

    $array = array_map(function($v){
        return (is_null($v)) ? "" : $v;
    },$array);
Run Code Online (Sandbox Code Playgroud)


Kel*_*Kel 20

然后你应该循环遍历数组元素,检查每个值为null并用空字符串替换它.像这样的东西:

foreach ($array as $key => $value) {
    if (is_null($value)) {
         $array[$key] = "";
    }
}
Run Code Online (Sandbox Code Playgroud)

此外,您可以实现检查功能并使用array_map()函数.


Ant*_*kov 9

There is even better/shorter/simpler solution. Compilation of already given answers. For initial data

[1, 4, "0", "V", null, false, true, 'true', "N"]
Run Code Online (Sandbox Code Playgroud)

with

$result = array_map('strval', $arr);
Run Code Online (Sandbox Code Playgroud)

$result will be

['1', '4', '0', 'V', '', '', '1', 'true', 'N']
Run Code Online (Sandbox Code Playgroud)

This should work even in php4 :)


小智 5

这会将数组映射到一个新数组,该数组使用空三元运算符来包含数组的原始值,或者如果该值为空则包含一个空字符串。

$array = array_map(function($v){
    return $v ?: '';
},$array);
Run Code Online (Sandbox Code Playgroud)