PHP开发接口如何将null值转字符串的空?

发布于 2022-09-05 04:53:56 字数 163 浏览 25 评论 0

问题描述

由于php是弱类型语言,平时也怎么在意变量类型. 但就在开发接口的时候 null 与 ''. 的不一样就会导致APP端闪退的情况.

如何在返回给APP数据前, 将数组里的null转为字符串的''呢?

tip: 数组可能是一维数组, 也可能是多维数组.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

带刺的爱情 2022-09-12 04:53:56

使用array_walk_recursive可以实现.

so easy

// 注意&引用赋值
array_walk_recursive($array, function (& $val, $key ) {
    if ($val === null) {
        $val = '';
    }    

});
耀眼的星火 2022-09-12 04:53:56
/**
 * 将数组中的null转为字符串''
 * @param $arr
 */
function nulltostr($arr)
{

    foreach ($arr as $k=>$v){
        if(is_null($v)) {
            $arr [$k] = '';
        }
        if(is_array($v)) {
            $arr [$k] = nulltostr($v);
        }
    }
    return $arr;
}

引用答案

@iByron
array_filter是只能去除掉一维的数组的null

function null_filter($arr)
{
    foreach($arr as $key=>&$val) {
        if(is_array($val)) {
            $val = null_filter($val);
        } else {
            if($val === null){
                unset($arr[$key]);
            }
        }
    }
    return $arr;
}

@SampsonHuang

$data= \str_replace(':null', ':""', json_encode($data));

相关问题

PHP开发接口响应数据null怎么过滤?

黄昏下泛黄的笔记 2022-09-12 04:53:56

首先这种null''这种操作应该在存放数组的时候做,否则就要对整个数组进行遍历,量不大还好,量大的话会消耗相当大的资源,下面是对整个数组的null的替换,是针对一维数组,多维数组,那就foreach好了,还是推荐第一种做法,在存放前做转换操作

<?php
function ttt($val) {
    return is_null($val) ? '' : $val;
}
$tt = array(1, 2, 3, null, 4, null, 5);
var_dump(array_map('ttt', $tt));
太阳男子 2022-09-12 04:53:56
function changecontent($arr) {
$result = array();
if(is_array($arr)) {
    foreach($arr as $key=>$val) {
        if(is_array($val)) {
            $newarr = changecontent($val);
            $result[$key] = $new;
        } else if($val === NULL) {
            $result[$key] = '';
        } else {
            $result[$key] = $val;
        
        }
    }
}
}
静若繁花 2022-09-12 04:53:56

按照我的经验来说, 出现 null 的原因都是数据库字段可以为空了

滥情稳全场 2022-09-12 04:53:56

数据库设计的就有问题,允许很多的null,会有你头疼的时候

月下客 2022-09-12 04:53:56

我觉得你在用之前判断一下再进行转换就好了,毕竟像你说,你数组是几维的不确定,但是你要用的时候肯定是遍历出来了,所以你加个判断

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文