15

对不起,我对这个问题进行了很多研究。是否有搜索和替换数组元素的标准函数?

str_replace 在这种情况下不起作用,因为我想搜索的是一个空字符串 '' 我想用 NULL 值替换它们

这是我的数组:

$array = (
    'first' => '',
    'second' => '',
);

我希望它变成:

$array = (
    'first' => NULL,
    'second' => NULL,
);

当然我可以创建一个函数来做到这一点,我想知道是否有一个标准函数可以做到这一点,或者至少是一个“单行解决方案”。

4

3 回答 3

33

我不认为有这样的功能,所以让我们创建一个新的

$array = array(
   'first' => '',
   'second' => ''
);

$array2 = array_map(function($value) {
   return $value === "" ? NULL : $value;
}, $array); // array_map should walk through $array

// or recursive
function map($value) {
   if (is_array($value)) {
       return array_map("map", $value);
   } 
   return $value === "" ? NULL : $value;
};
$array3 = array_map("map", $array);
于 2012-10-10T23:35:20.900 回答
13

据我所知,没有标准功能,但您可以执行以下操作:

foreach ($array as $i => $value) {
    if ($value === "") $array[$i] = null;
}
于 2012-10-10T23:34:37.893 回答
2

现在您也可以使用箭头功能:

$array = array_map(fn($v) => $v === '' ? null : $v, $array);
于 2021-05-21T11:32:56.977 回答