15

申し訳ありませんが、私はこの問題について多くのことを調査しました。配列要素を検索して置換する標準機能はありますか?

この場合、str_replace は機能しません。検索したいのは空の文字列 '' であり、それらを NULL 値に置き換えたいからです。

これは私の配列です:

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

そして私はそれがなりたい:

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

もちろん、それを行う関数を作成できます。それを行うための標準関数が1つあるかどうか、または少なくとも「単一行のソリューション」があるかどうかを知りたいです。

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 に答える