关于php unset对json_encode的影响详解
Go  /  管理员 发布于 5年前   528
前言 PHP 中有个释放变量的语句叫做unset(从PHP4开始unset已经不再是一个函数了,而是一个语句),本文主要给大家介绍了关于php unset对json_encode影响的相关内容,下面话不多说了,来一起看看详细的介绍吧 先运行一段php代码: 返回结果如下: string(28) "["hello world","girl","boy"]" 发现对一个数组unset前后,变量的类型变化了,unset前是数组,unset后是对象 这是为什么呢? 看下unset和json_encode究竟是做了什么: unset() 销毁指定的变量。可以删除数组的指定元素,删除后索引不重排。 json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 而json_encode转换的对象如果是数组,那么就需要注意下了,看下面的示例: 举例: 运算结果: string(28) "["hello world","girl","boy"]" 发现上面的结果一个是数组,一个是对象。 这是因为$a是索引数组(连续数组),$b则是关联数组(非连续数组) 再看一个官方的例子: 以上输出的结果是: 注意:上面的第二个数组之所以转化后变成对象,是因为键值不是从0开始,这也是非连续数组 所以对一个连续数组执行unset后,会变成非连续数组,对非连续数组执行json_encode会变成对象。 总结: php中: 索引数组:是指以数字为键的数组。并且这个键值 是自增的 关联数组:指的是一个键值对应一个值,并且这个键值是不规律的,通常都是我们自己指定的。 索引数组转为json后是数组。而关联数组转为json后是对象 拓展一: 那如果想对连续数组执行json_encode后变成对象可以这样做: 输出结果为: {"0":"a","1":"b","2":"c","3":"d"} 拓展二: 如何消除unset对json_encode的影响?达到转换结果依然为数组 使用unset时: 优化后: 对优化后的$array进行json_encode就可以完美的转换为数组而不是对象了 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。$a = Array(0=>'hello world', 1=>'girl', 2=>'boy');var_dump(json_encode($a));unset($a[1]);var_dump(json_encode($a));
string(29) "{"0":"hello world","2":"boy"}"$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(48) "{"name":"hello world","age":"18","gender":"man"}"$arr = array( '0'=>'a','1'=>'b','2'=>'c','3'=>'d');echo json_encode((object)$arr);
foreach ($array as $k => $v) { if (某条件) { unset($array[$k]); }}
$tmp = array();foreach ($array as $k => $v) { if (某条件)) { continue; } $tmp[] = $v;}$array = $tmp;
您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号