关于phpunset对json_encode的影响示例
时间:2021-01-25
来源:互联网
标签:
本文主要给大家介绍了关于php unset对json_encode的影响的相关内容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友快来php爱好者看看吧。
前言
PHP 中有个释放变量的语句叫做unset(从PHP4开始unset已经不再是一个函数了,而是一个语句),本文主要给大家介绍了关于php unset对json_encode影响的相关内容,下面话不多说了,来一起看看详细的介绍吧
先运行一段php代码:
$a = Array(0=>'hello world', 1=>'girl', 2=>'boy');
var_dump(json_encode($a));
unset($a[1]);
var_dump(json_encode($a));
返回结果如下:
string(28) "["hello world","girl","boy"]"
string(29) "{"0":"hello world","2":"boy"}"
发现对一个数组unset前后,变量的类型变化了,unset前是数组,unset后是对象
这是为什么呢?
看下unset和json_encode究竟是做了什么:
unset() 销毁指定的变量。可以删除数组的指定元素,删除后索引不重排。
json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE
而json_encode转换的对象如果是数组,那么就需要注意下了,看下面的示例:
举例:
$a = Array(0=>'hello world', 1=>'girl', 2=>'boy');
var_dump(json_encode($a));
$b = Array('name'=>'hello world', 'age'=>'18', 'gender'=>'man');
var_dump(json_encode($b));
运算结果:
string(28) "["hello world","girl","boy"]"
string(48) "{"name":"hello world","age":"18","gender":"man"}"
发现上面的结果一个是数组,一个是对象。
这是因为$a是索引数组(连续数组),$b则是关联数组(非连续数组)
再看一个官方的例子:

以上输出的结果是:

注意:上面的第二个数组之所以转化后变成对象,是因为键值不是从0开始,这也是非连续数组
所以对一个连续数组执行unset后,会变成非连续数组,对非连续数组执行json_encode会变成对象。
总结:
php中:
索引数组:是指以数字为键的数组。并且这个键值 是自增的
关联数组:指的是一个键值对应一个值,并且这个键值是不规律的,通常都是我们自己指定的。
索引数组转为json后是数组。而关联数组转为json后是对象
拓展一:
那如果想对连续数组执行json_encode后变成对象可以这样做:
$arr = array(
'0'=>'a','1'=>'b','2'=>'c','3'=>'d'
);
echo json_encode((object)$arr);
输出结果为:
{"0":"a","1":"b","2":"c","3":"d"}
拓展二:
如何消除unset对json_encode的影响?达到转换结果依然为数组
使用unset时:
foreach ($array as $k => $v) {
if (某条件) {
unset($array[$k]);
}
}
优化后:
$tmp = array();
foreach ($array as $k => $v) {
if (某条件)) {
continue;
}
$tmp[] = $v;
}
$array = $tmp;
对优化后的$array进行json_encode就可以完美的转换为数组而不是对象了
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家有所帮助。
-
request.getParameter是从哪里获取数据? 时间:2025-11-18 -
简述TCP和UDP的主要区别及应用场景 时间:2025-11-18 -
Git和SVN的区别、优缺点和应用场景 时间:2025-11-18 -
Sqoop下载、安装与配置详解 时间:2025-11-18 -
Keepalived下载、配置、原理详解 时间:2025-11-18 -
Java.sql.Timestamp用法详解(构造方法、功能、方法摘要、实例代码) 时间:2025-11-18
今日更新
-
知乎网页版入口在哪里 知乎网页版一键直达
阅读:18
-
币安为何取消爆仓预警功能?深度解析背后原因与影响
阅读:18
-
微信视频号官网网页版入口 视频号助手电脑版一键登录
阅读:18
-
学信网官网登录入口-学历查询唯一官方平台
阅读:18
-
币安合约机制漏洞修复进展及最新动态
阅读:18
-
上下齐手梗揭秘:全网爆火的搞笑动作出处,看完秒懂为何人人模仿!
阅读:18
-
上香是什么梗 揭秘网络流行语上香的含义和出处
阅读:18
-
中国高等教育学生信息网-学信网官方学历查询认证平台
阅读:18
-
高德地图网页版入口在哪 在线使用高德地图网页版
阅读:18
-
币安仓位清零原因解析 爆仓率低背后机制揭秘
阅读:18










