PHP再帰方式一つの配列内のnullを空文字列に変換する方法
一部のインタフェースの呼び出しでは、データベースを直接問い合わせるフィールドがnullフィールドである可能性があるが、フロントエンドの判断を簡便にするためにnullを空文字列’’’’’’’に変換する必要があり、この場合は再帰的に行う必要がある.直接上のコードは次のとおりです.
テスト出力結果:
参考原文リンク:https://www.cnblogs.com/xuzhengzong/p/8571063.html
// null ''
function _unsetNull($arr){
if($arr !== null){
if(is_array($arr)){
if(!empty($arr)){
foreach($arr as $key => $value){
if($value === null){
$arr[$key] = '';
}else{
$arr[$key] = _unsetNull($value); //
}
}
}else{
$arr = ''; }
}else{
if($arr === null){
$arr = ''; } //
}
}else{
$arr = ''; }
return $arr;
}
// null
function emptyStringToNull($arr){
if($arr !== ''){
if(is_array($arr)){
if(!empty($arr)){
foreach($arr as $key => $value){
$arr[$key] = ($value === '') ? null : emptyStringToNull($value);
}
} else {
$arr = null;
}
} else {
if($arr === '') {
$arr = null;
} //
}
} else {
$arr = null;
}
return $arr;
}
var_dump(_unsetNull(null)); // string(0) ""
$arr1 = array('name'=>'zhangsan', 'age'=>18, 'gender'=>'male', 'phone'=>null, 'hobby'=>null);
var_dump(_unsetNull($arr1));
$arr2 = array('name'=>'zhangsan', 'age'=>18, 'gender'=>'male', 'phone'=>'', 'hobby'=>'');
var_dump(emptyStringToNull($arr2));
?>
テスト出力結果:
string(0) ""
array(5) {
["name"]=>
string(8) "zhangsan"
["age"]=>
int(18)
["gender"]=>
string(4) "male"
["phone"]=>
string(0) ""
["hobby"]=>
string(0) ""
}
array(5) {
["name"]=>
string(8) "zhangsan"
["age"]=>
int(18)
["gender"]=>
string(4) "male"
["phone"]=>
NULL
["hobby"]=>
NULL
}
参考原文リンク:https://www.cnblogs.com/xuzhengzong/p/8571063.html