PHP数组对象与Json转换操作实例分析


Posted in PHP onOctober 22, 2019

本文实例讲述了PHP数组对象与Json转换操作。分享给大家供大家参考,具体如下:

代码

<?php
//数组转对象
function arrayToObject($e){
  if( gettype($e)!='array' ) return;
  foreach($e as $k=>$v){
    if( gettype($v)=='array' || getType($v)=='object' )
      $e[$k]=(object)arrayToObject($v);
  }
  return (object)$e;
}
//对象转数组
function objectToArray($e){
  $e=(array)$e;
  foreach($e as $k=>$v){
    if( gettype($v)=='resource' ) return;
    if( gettype($v)=='object' || gettype($v)=='array' )
      $e[$k]=(array)objectToArray($v);
  }
  return $e;
}
//对象转数组
function object_array($array){
  if(is_object($array)){
    $array = (array)$array;
  }
  if(is_array($array)){
    foreach($array as $key=>$value){
      $array[$key] = object_array($value);
    }
  }
  return $array;
}
//json到数组
function simple_json_parser($json){
  $json = str_replace("{","",str_replace("}","", $json));
  $jsonValue = explode(",", $json);
  $arr = array();
  foreach($jsonValue as $v){
    $jValue = explode(":", $v);
    $arr[str_replace('"',"", $jValue[0])] = (str_replace('"', "", $jValue[1]));
  }
  return $arr;
}
echo "<br>-------------------------------<br>";
echo "现在的数组<br><br>";
$arr=array(
  "name"=>"李小龙",
  "tel"=>"11111111111",
  "age"=>"12",
);
var_dump($arr);
echo "<br>-------------------------------<br>";
echo "<br><br>数组转对象<br><br>";
$obj= arrayToObject($arr);
var_dump($obj);
echo "<br><br>输出对象属性<br><br>";
var_dump($obj->name);
echo "<br>-------------------------------<br>";
echo "<br><br>对象转数组<br><br>";
$arr=object_array($obj);
var_dump($arr);
echo "<br><br>输出数组数值<br><br>";
var_dump($arr["name"]);
echo "<br>-------------------------------<br>";
echo "<br><br>Json到数组<br><br>";
$json ='{"a":"哈哈","b":"我","c":"数","d":"一","e":3,"f":2,"g":1,"h":"别生气了"}';
$arr=simple_json_parser($json);
var_dump($arr);
echo "<br>官方换种方法<br>";
echo "对象<br>";
var_dump(json_decode($json));
$a=json_decode($json);
echo "<br>属性:";
echo $a->a;
echo "<br>数组<br>";
var_dump(json_decode($json,true));
echo "<br>-------------------------------<br>";
echo "<br><br>数组到Json<br><br>";
var_dump($arr);
echo "<br>";
var_dump(json_encode($json, JSON_HEX_APOS));

输出

-------------------------------
现在的数组
array(3) { ["name"]=> string(9) "李小龙" ["tel"]=> string(11) "11111111111" ["age"]=> string(2) "12" }
-------------------------------
数组转对象
object(stdClass)#1 (3) { ["name"]=> string(9) "李小龙" ["tel"]=> string(11) "11111111111" ["age"]=> string(2) "12" }
输出对象属性
string(9) "李小龙"
-------------------------------
对象转数组
array(3) { ["name"]=> string(9) "李小龙" ["tel"]=> string(11) "11111111111" ["age"]=> string(2) "12" }
输出数组数值
string(9) "李小龙"
-------------------------------
Json到数组
array(8) { ["a"]=> string(6) "哈哈" ["b"]=> string(3) "我" ["c"]=> string(3) "数" ["d"]=> string(3) "一" ["e"]=> string(1) "3" ["f"]=> string(1) "2" ["g"]=> string(1) "1" ["h"]=> string(12) "别生气了" }
官方换种方法
对象
object(stdClass)#2 (8) { ["a"]=> string(6) "哈哈" ["b"]=> string(3) "我" ["c"]=> string(3) "数" ["d"]=> string(3) "一" ["e"]=> int(3) ["f"]=> int(2) ["g"]=> int(1) ["h"]=> string(12) "别生气了" }
属性:哈哈
数组
array(8) { ["a"]=> string(6) "哈哈" ["b"]=> string(3) "我" ["c"]=> string(3) "数" ["d"]=> string(3) "一" ["e"]=> int(3) ["f"]=> int(2) ["g"]=> int(1) ["h"]=> string(12) "别生气了" }
-------------------------------
数组到Json
array(8) { ["a"]=> string(6) "哈哈" ["b"]=> string(3) "我" ["c"]=> string(3) "数" ["d"]=> string(3) "一" ["e"]=> string(1) "3" ["f"]=> string(1) "2" ["g"]=> string(1) "1" ["h"]=> string(12) "别生气了" }
string(136) ""{\"a\":\"\u54c8\u54c8\",\"b\":\"\u6211\",\"c\":\"\u6570\",\"d\":\"\u4e00\",\"e\":3,\"f\":2,\"g\":1,\"h\":\"\u522b\u751f\u6c14\u4e86\"}""

PHP 相关文章推荐
最新的php 文件上传模型,支持多文件上传
Aug 13 PHP
PHP中simplexml_load_string函数使用说明
Jan 01 PHP
php遍历文件夹所有文件子文件夹函数代码
Nov 27 PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 PHP
深入理解PHP中的empty和isset函数
May 26 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
PHP实现随机生成水印图片功能
Mar 22 PHP
PHP二维关联数组的遍历方式(实例讲解)
Oct 18 PHP
php格式文件打开的四种方法
Feb 24 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
Laravel5.4简单实现app接口Api Token认证方法
Aug 29 PHP
PHP+Mysql分布式事务与解决方案深入理解
Feb 27 PHP
Yii框架where查询用法实例分析
Oct 22 #PHP
Laravel手动返回错误码示例
Oct 22 #PHP
Laravel 6.2 中添加了可调用容器对象的方法
Oct 22 #PHP
浅谈Laravel模板实体转义带来的坑
Oct 22 #PHP
Laravel定时任务的每秒执行代码
Oct 22 #PHP
Laravel框架实现定时Task Scheduling例子
Oct 22 #PHP
laravel 解决强制跳转 https的问题
Oct 22 #PHP
You might like
PHP.MVC的模板标签系统(二)
2006/09/05 PHP
PHP Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
document.createElement()用法
2013/03/13 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
jQuery实现动态添加tr到table的方法
2016/12/26 Javascript
js实现消息滚动效果
2017/01/18 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
Python 获取指定文件夹下的目录和文件的实现
2019/08/30 Python
Python如何基于rsa模块实现非对称加密与解密
2020/01/03 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
python对XML文件的操作实现代码
2020/03/27 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
生物技术毕业生自荐信
2013/10/23 职场文书
英文演讲稿
2014/05/15 职场文书
机械专业求职信
2014/05/25 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
高中政治教学反思
2016/02/23 职场文书
Python图像处理库PIL详细使用说明
2022/04/06 Python