在今天的开发过程中发现这样的一个问题:
因数据库字段类型包含null类型,然后服务器端查询到的数据封装成json格式后也包含null,然后导致客户端在解析的时候出现奔溃的情况。
本打算由客户端来解决这个问题,无非就是加个判断,但仔细一想,若返回的数据是一个多维数组且包含N多的字段,那么客户端在判断的时候需要逐一判断,如此一来CPU、内存什么的杠杠的就上去了
而后如此艰巨的任务自然而然就交由服务器端来解决。
你们都知道程序员大都很懒的,因此针对这个问题我也去搜索了,结果给出的答案不出我所料,基本上都是客户端来解决,可你他妈想啊,客户端就那么点内存还不够跑程序的,怎么能用来处理这种琐事呢。介于此,服务器端果断发挥大无畏的精神,既然搜索不到,那我们就自己写。
在对查询到的数据进行分析之后发现是一个多维数组,而且他娘的数组的长度还不确定,这尼玛还得用递归。
无限修改调试中…
经过不懈的努力终于有所成就了,我也就不卖关子了,直接上代码。
源码下载可前往该地址:
https://github.com/paopao7/null_handle
(请注意其中的&符号)
//数据null处理
/*
* 该方法递归判断传入的数组中的每一个值是否为null,若为Null,则转换为””
* $array:为要处理的数组或字符串
* $replace:为null要 替换成的字符串,默认为””,也可在调用该方法的时候,默认一个值例如 “kong”
* */
function null_handle(&$array,$replace=””){
if(is_array($array)){
foreach($array as $first_key=>&$first_item){
if(is_null($first_item)){
$array[$first_key] = &$replace;
}
if(is_array($first_item)){
null_handle($first_item,$replace);
}
}
}else{
$array = $replace;
}
return $array;
}
//调用方法
//第二个参数,可填可不填,填了则使用该参数,否则则使用默认””
null_handle($data,”kong”)
如果还有什么不明白的地方,欢迎加我QQ进行咨询,请注明技术咨询
本人QQ:980569038
也可以扫码本人微信:
若该文章对您有一定帮助,欢迎打赏
(点击图片可放大)
本人原创,转载请注明出处
网友评论